Where to find the interrupt vector table?

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

Reply to
zix
Loading thread data ...

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

Reply to
Michael Schnell

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

Reply to
zix

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
Reply to
Tauno Voipio

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

Reply to
zix

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

-Michael

Reply to
Michael Schnell

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

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.

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.

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

Reply to
Juergen Beisert

zix wrote in news:02d114a9-c211-4916-a52b- snipped-for-privacy@e25g2000prg.googlegroups.com:

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/ directory.)

See Vol 3 of the appropriate MIPS ISA Programming Manual.

formatting link
architecture/ OR
formatting link

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

GH

Reply to
Gil Hamilton

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

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.

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.

Reply to
Xenu The Enturbulator

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.