Do you have a question? Post it now! No Registration Necessary
March 1, 2008, 11:56 am

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
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?

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?

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?

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

Re: Where to find the interrupt vector table?

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.

Re: Where to find the interrupt vector table?
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/<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

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

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

Memory setup is very system-specific. I can't help with this.
GH
Site Timeline
- » Embedded Job Position Open in Van Nuys.
- — Next thread in » Embedded Linux
-
- » Cli for embedded
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Driver LED BP5131 - jak to dziaĆa?
- — The site's Newest Thread. Posted in » Electronics (Polish)
-
- » Rules
- — The site's Last Updated Thread. Posted in » Microcontrollers (Russian)
-