Anonymous
public text v1 · immutableint simple_mmap (struct file *filp, struct vm_area_struct *vma)
{
#if 1
unsigned long physical = PHYSICAL_ADDRESS ;
/* Page should already be allocated by now, represented by vma->vm_start) */
printk (KERN_WARNING "end - start => %u\n", vma->vm_end - vma->vm_start) ;
vma->vm_flags = vma->vm_flags | VM_IO | VM_RESERVED ; /* Memory mapped I/O and DONT Swap out */
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot) ; /* Dont Swap / Cache */
return io_remap_page_range (vma, vma->vm_start, physical,
vma->vm_end - vma->vm_start,
vma->vm_page_prot);
#else
short * ptr = ioremap (PHYSICAL_ADDRESS, 1024) ;
short * base_reg ;
char v_rom_mac [6] ;
printk (KERN_WARNING "ptr => %u\n", ptr) ;
base_ptr = ptr ;
base_reg = (short *) ((char *) ptr + 14) ;
*base_reg = 1 ;
get_rom_mac (v_rom_mac) ;
#endif
}