Where to find the interrupt vector table?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi,
    am working on mips 4k series. I am not getting the interrupt
vector table in arch/mips directory. Can someone point where is it
located? I mean if I want to change it, which file I should be looking
into(default 1s for the most peripherals)....and how to set up the
memory configuration(RAM, the staring and end address)? I can pass the
memory size from bootloader(uboot), but where to give the memory
related configuration, sdram specific settings?


Thanks a lot,
zix

Re: Where to find the interrupt vector table?
As interrupts are used and defined by drivers, I suppose the interrupt
vector table is not statically defined in a file, but dynamically
constructed by the drivers using some API to add entries.

-Michael

Re: Where to find the interrupt vector table?
Quoted text here. Click to load it

well, I do agree with u, but for specific board, normally they keep
commonly used peripherals at a common place, I am using bcm47xx board
in 2.6 kernel..so just wondered where can i find it? Inside arch/mips/
bcmxx I am just finding all the functions,not anything configuration
specific....

If anybody is aware of this, please lemme know..and also do I need to
set up the SDRam over in kernel also, I mean SdRam clock refresh rate,
row and coloumn selectors or will the kernel take care of it? I know
that memory size is passed from bootloader, but how about the starting
address?

Thanks,
zix

Re: Where to find the interrupt vector table?
Quoted text here. Click to load it

Would you please tell what you're attempting to achieve.
You cannot put interrupt service in user space.

Hooking interrupts in the way of DOS or early Windows
is not going to work in Linux.

--

Tauno Voipio
tauno voipio (at) iki fi

Re: Where to find the interrupt vector table?
Quoted text here. Click to load it

Hi,
    I am working on a board bringup on mips le platform 2.6 kernel.
There is board specific directory, arch/mips/bcm47xx. I am wondering
where I can find the board related configuartion..IVT, peripheral io
address, is it some .S files? I have seen all files inside the arm/
mips/bcm47xx and I cudnt see anything worthwhile. I guess the
configuration files are somewhere else. Also, do I have to specify the
memory configuration in kernel, like sdram refresh rate and coloumn
and row selector? If so, which of files I should be looking at?For
UART, I have 8250...I need to select the divisor..do i change in
driver or is there any configuration file for that?
Sorry, these are a lot of questions to answer....but will be glad to
know the answers...am badly stuck and will be very helpful if someone
can answer me...


Thanx,
zix

Re: Where to find the interrupt vector table?
 > For
Quoted text here. Click to load it

This is done dynamically by the application in user space by accessing
the driver via the ioctl library call.

-Michael

Re: Where to find the interrupt vector table?
Quoted text here. Click to load it

Do you are using a boot loader (like U-Boot or RedBoot...)?

Quoted text here. Click to load it

Most of these files are generic. Only a few files depending on the hardware
they should run later on. And these few specific files contain the
information how the linux kernel (generic part) and the device drivers can
handle this hardware.

Quoted text here. Click to load it

No. This should be done by the bootloader. It loads and starts the linux
kernel and most of the time the architecture specific part of the kernel
only needs to know where the RAM is (physical address) and what size it
has.

Quoted text here. Click to load it

No. Changing the divisor to get a specific baudrate will be done at runtime.
The driver only needs the base clock frequency. This should be provide by
your board specific support file (if needed).

JB

Re: Where to find the interrupt vector table?
Quoted text here. Click to load it

It should be there somewhere, you may have to look in a subdirectory for
your board.

Quoted text here. Click to load it

This stuff is done in the bootloader, not the kernel. Furthermore, it
needs to be done in assembly language since RAM will not be available
(and compiled C code requires RAM within which to put the stack). It's
usually the very first thing your board will have to do.

Quoted text here. Click to load it

The kernel doesn't need to be told the starting address, although the
bootloader will need to know it so that it can jump into the kernel.

Re: Where to find the interrupt vector table?
snipped-for-privacy@e25g2000prg.googlegroups.com:

Quoted text here. Click to load it

It doesn't work quite that way on MIPS.  There's a single hardware
interrupt "exception vector" located at phys 0x180 or 0x200 (depending
on whether the CP0 Cause-IV bit is set).  The code there then checks the
Cause-IPx bits to find out which interrupt source fired.  (Once the
particular source is identified, linux has its own mechanism for finding
out what interrupt handler should be invoked.  You might try tracing
backwards from do_IRQ in the arch/mips/<Arch> directory.)

See Vol 3 of the appropriate MIPS ISA Programming Manual.  
http://www.mips.com/products/resource-library/product-materials/mips -
architecture/
OR
http://tinyurl.com/3ah6x3

Quoted text here. Click to load it

Memory setup is very system-specific.  I can't help with this.

GH

Site Timeline