[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Ltib] How to add LPC32x0 EMC static memory device to Linux (MMU/Vi
Re: [Ltib] How to add LPC32x0 EMC static memory device to Linux (MMU/VirtualMemory/etc)
Thu, 03 Jun 2010 09:05:09 +0100
Thunderbird 22.214.171.124 (X11/20080707)
This is way off topic, but from what I recall, and this was a while ago
so you need to check if this is still relevant:
First it depends on the architecture etc and how the h/w is mapped into
the address space. If it's x86 style i/o ports, then you can use
inw/outw e.g: outw(register_value, IOPORT_ADDRESS). Ask the hardware
guys (or consult the manual for the device).
If on the other hand the hardware is mapped into some non-cacheable
memory location, then you can use mmap (without checks):
// open memory driver and get a file descriptor
mem_fd = open("/dev/mem", O_RDWR);
// map into our address space at the address chosen by kernel
mem_ptr = mmap(0, size_to_map, PROT_READ | PROT_WRITE,
MAP_SHARED, mem_fd, hardware_base_address );
struct hw_layout *hw_ptr = (struct hw_layout *)mem_ptr;
hw_ptr->control_reg_a = 0;
Alternatively (and depending on hardware, necessarily) you may need to
write an actual kernel driver for this and access via the usual
man mmmap, man outw and google are probably the best place to start, or
some other more hardware orientated list.
Ayewin Oung wrote:
> Hi list
> I'm porting embedded linux to our LPC32x0 board, which hangs of FPGA via
> EMC static memory chip select. Which is used to access simple register
> rd/wr to FPGA.
> How do I go about mapping memory EMC static memory Chip Select(s) and
> letting kernel know the address in MMU so that it doesn't bomb out when
> I try to read write to the FPGA.
> I'm new to this, so pointers against existing code, device drivers would
> be very helpful.
> Thanks in advance.