Subversion Repositories HelenOS

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
3947 5611 d 13 h jermar /trunk/ This is the evil commit. In particular, it does:

- introduces more powerful pseudo code for userspace IRQ top-half handlers
- changes the internals of IRQ dispatching
- simplifies the kernel's i8042 driver
- adapts the uspace i8042 driver to make use of the new pseudocode
- breaks all other architectures except ia32
- breaks almost all existing drivers
- breaks switching between uspace and kernel drivers
 
3941 5612 d 10 h jermar /trunk/kernel/ Let IRQ claim methods take irq_t * instead of the instance argument.  
3940 5612 d 13 h decky /trunk/kernel/ make hw_area API more generic
this allows mapping of EGA VRAM on ia32/amd64
 
3938 5612 d 14 h jermar /trunk/kernel/genarch/ Embed the ns16550 irq structure into the ns16550 instance structure.  
3934 5613 d 7 h jermar /trunk/kernel/ Improve the ns16550 driver.

- The driver support multiple instances.
- It still remembers the last registered IRQ in a global structure (cannot be
easily fixed now)
- Was converted to use PIO directly
 
3932 5613 d 8 h jermar /trunk/kernel/ Kill arch/drivers/ega.h. Provide one-stop shopping
place for architectures with ia32 legacy I/O space.
 
3931 5613 d 9 h jermar /trunk/kernel/genarch/ Improve the i8042 kernel driver (phase I).

- Convert the code to be instance-aware
- Still using hardcoded initialization from legacy IO address
- Use elegant i8042 register map for PIO
 
3930 5613 d 9 h jermar /trunk/kernel/ Adapt most of the kernel to ioport8_t, ioport16_t and ioport32_t types.  
3928 5613 d 11 h jermar /trunk/kernel/ Kill arch/drivers/i8042.h.  
3927 5613 d 11 h jermar /trunk/kernel/genarch/ Nuke i8042_poll().  
3908 5616 d 12 h decky /trunk/ overhaul pareas: use one single physical area for the physical address space not belonging to physical memory  
3907 5616 d 20 h decky /trunk/kernel/ remove forgotten #ifdef arch  
3906 5617 d 7 h jermar /trunk/kernel/ IRQ handlers are using one superfluous argument and an unused elipsis.
On the other hand, IRQ claim functions would need to be passed the instance
argument.
 
3902 5617 d 15 h jermar /trunk/kernel/ Introduce a more platform-neutral name for programmed I/O.

The new API looks like pio_read_n() or pio_write_n(), where n is 8, 16 or 32.
The old API (i.e. inb(), inw(), inl(), outb() outw(), outl()) may have made
some people think that the interface is only to be used with the separate I/O
space. That's not the case. This API is to be implemented on all platforms
so that we can finally have really generic kernel device drivers.
 
3900 5617 d 17 h jermar /trunk/ Get rid of CONFIG_NS16550_INTERRUPT_DRIVEN and CONFIG_I8042_INTERRUPT_DRIVEN.  
3877 5620 d 11 h decky /trunk/kernel/genarch/ remove (almost all) platform dependent code from drivers  
3876 5620 d 11 h decky /trunk/kernel/genarch/ add BGR 888 visual, remove FB_INVERT_ENDIAN  
3844 5632 d 9 h decky /trunk/ silent kernel console output when user space console is active  
3790 5655 d 19 h svoboda /trunk/kernel/ Make newlines in panic messages consistent. Add periods at end of messages so that it is obvious whether they are printed entirely.  
3779 5659 d 17 h jermar /trunk/kernel/ Only one kernel EGA driver to rule them all.  
3752 5667 d 19 h svoboda /trunk/kernel/genarch/src/fb/ Another memmove() instead of memcpy().  
3741 5669 d 14 h jermar /trunk/kernel/genarch/src/fb/ cstyle  
3733 5670 d 17 h decky /trunk/kernel/genarch/src/fb/ fix console overdrawing when is logo on  
3714 5677 d 14 h decky /trunk/kernel/ do not waist resources if no keyboard driver is used  
3710 5678 d 9 h decky /trunk/ resurrect kernel logo  
3709 5678 d 11 h decky /trunk/kernel/ invert VGA 3:2:3 palette to reflect changes in revision 3692  
3707 5678 d 12 h decky /trunk/ kconsole is optional
kernel & uspace framebuffer rewrite with speedups (some things are slightly broken yet)
 
3704 5678 d 12 h decky /trunk/kernel/genarch/include/kbd/ add header  
3692 5684 d 9 h rimsky /trunk/ Fixed the bug when on SunBlade1500 we wrote to an address outside the framebuffer memory. A nasty hack to the 8-bit palette so that on sb1500 we do not have to turn black into white and white into black.  
3679 5688 d 6 h rimsky /trunk/ Added forgotten stuff related to framebuffers with offsets. Got rid of VISUAL_SB1500_PALETTE.  
3672 5689 d 11 h jermar /trunk/ Merge sparc branch to trunk.  
3661 5694 d 9 h vana /trunk/ IA64: repair similators support  
3657 5694 d 18 h vana /trunk/ Legacy IRQ support, uspace NS16550 support, some minor changes  
3655 5695 d 10 h jermar /trunk/kernel/ Add additional members to the irq_t structure so that an interrupt-driven driver
does not need to know how to clear the level interrupt. The z8530 was modified
in this way and is much more generic. The ns16550 driver has also been modified,
but awaits testing. The sparc64 interrupt mapping and dispatch code is now using
the new info and calls the clear-interrupt-routine itself.
 
3646 5696 d 11 h jermar /trunk/kernel/ Initial support for interrupt driven driver for ns16550.  
3581 5713 d 8 h jermar /trunk/kernel/ Some cstyle.  
3577 5713 d 23 h vana /trunk/kernel/ Support for serial port console on IA64 as a compensation for keyboard - based on SPARC ns16550 driver  
3240 5816 d 20 h decky / move unfinished ObjC support to a separate branch  
3186 5854 d 12 h jermar /trunk/kernel/ Support for active mutexes. Active mutexes implement busy waiting, pretty much
in the same way as spinlocks, but can be passed to condition variables, which is
the motivation for this enhancement.
 
3104 5871 d 23 h svoboda /trunk/kernel/ Declare arguments for memstr.h operations as pointers instead of uintptr_t.