[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] The one cycle access to LMB



Hi Alejandro,

alucero@xxxxxxxxx wrote:

> Is there anyone working with code placed at LMB?

Not that I am aware of.

> However there is not any action to put code at LMB. 
> I'm trying to put the irq code from entry.S to LMB. For avoiding a big binary 
> file I have created a new section including all the irq code with export 
> symbols for irqcode_start and irqcode_end. At machine.c in mach_early_init I 
> haved added code to copy the irq routines to LMB address using the 
> irqcode_end mark and the CONFIG_XILINX_LMB_START address.
> 
> This works, but there's "someone" modifying specific addressed at LMB after I 
> have copied the code. I check it just after my copy routine and the code has 
> been copied perfectly. I have looked for kernel code doing some kind of 
> access to this memory, but I did not find it.

Apart from the existing code in mach_early_init, which copies the
interrupt vectors, there should be no other accesses into LMB.

What are these "specific addresses"?  Do they correspond to the .org
directives in arch/microblaze/kernel/intv.S?

You might need to add another symbol in the link script that sits above
the IRQ/exception table, say at 0x80, then have the irq routines copied
to that address.

If you are using XMD/MDM, try setting a HW write breakpoint at one of
the corrupted addresses, and set the kernel running.  You might be able
to trap the offending instruction this way.

Regards,

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/