331722 |
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re) |
331191 |
19-Mar-2018 |
eadler |
MFC r315986:
Fix 3 entries in mode tables related to mono and 90-column text modes. Newer VGAs don't support any mono modes, but bugs in the tables created 2 virtual mono modes (#45 90x43 and #112 80x43) that behaved more strangely than crashing. 90-column modes are tweaked 80-column ones and also fail to work on newer VGAs. #45 did crash (hang) on some hardware. |
330897 |
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg |
317500 |
27-Apr-2017 |
kib |
MFC r317196: Write-combine framebuffer writes through user-space mappings, if possible. |
307589 |
19-Oct-2016 |
gonzo |
MFC r306555:
Provide way for framebuffer driver to request mmap(2) mapping type
On ARM if memattr is not overriden mmap(2) maps framebuffer memory as WBWA which means part of changes to content in userland end up in cache and appear on screen gradually as cache lines are evicted. This change adds configurable memattr that hardware fb implementation can set to get the memory mapping type it requires:
- Add new flag FB_FLAG_MEMATTR that indicates that framebuffer driver overrides default memattr - Add new field fb_memattr to struct fb_info to specify requested memattr
Reviewed by: ray Differential Revision: https://reviews.freebsd.org/D8064 |
303807 |
06-Aug-2016 |
jhb |
MFC 303076,303225: Use MTX_SYSINIT for the VESA lock.
303076: vesa: fix panic on suspend
Fix the following panic seen when migrating a FreeBSD guest on Xen:
panic: mtx_lock() of destroyed mutex @ /usr/src/sys/dev/fb/vesa.c:541 cpuid = 0 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe001d2fa4f0 vpanic() at vpanic+0x182/frame 0xfffffe001d2fa570 kassert_panic() at kassert_panic+0x126/frame 0xfffffe001d2fa5e0 __mtx_lock_flags() at __mtx_lock_flags+0x15b/frame 0xfffffe001d2fa630 vesa_bios_save_restore() at vesa_bios_save_restore+0x78/frame 0xfffffe001d2fa680 vga_suspend() at vga_suspend+0xa3/frame 0xfffffe001d2fa6b0 isavga_suspend() at isavga_suspend+0x1d/frame 0xfffffe001d2fa6d0 bus_generic_suspend_child() at bus_generic_suspend_child+0x44/frame [...]
This is caused because vga_sub_configure (which is called if the VGA adapter is attached after VESA tried to initialize), points to vesa_configure, which doesn't initialize the VESA mutex. In order to fix it, make sure vga_sub_configure points to vesa_load, so that all the needed vesa components are properly initialized.
303225: Use MTX_SYSINIT for the VESA lock.
vesa_init_done isn't a reliable guard for the mutex init. If vesa_configure() doesn't find valid VESA info it will not set vesa_init_done, but the lock will remain initialized. Revert r303076 and use MTX_SYSINIT to deterministically init the lock.
PR: 209203 Approved by: re (gjb) |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
300072 |
17-May-2016 |
mav |
Fix NULL-dereference panic if VESA reports zero modes.
MFC after: 1 week
|
298955 |
03-May-2016 |
pfg |
sys/dev: minor spelling fixes.
Most affect comments, very few have user-visible effects.
|
298848 |
30-Apr-2016 |
pfg |
sys: Make use of our rounddown() macro when sys/param.h is available.
No functional change.
|
298646 |
26-Apr-2016 |
pfg |
sys/dev: extend use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
|
298431 |
21-Apr-2016 |
pfg |
sys: use our nitems() macro when param.h is available.
This should cover all the remaining cases in the kernel.
Discussed in: freebsd-current
|
295880 |
22-Feb-2016 |
skra |
As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to include it explicitly when <vm/pmap.h> is already included.
Reviewed by: alc, kib Differential Revision: https://reviews.freebsd.org/D5373
|
295790 |
19-Feb-2016 |
jhibbits |
Replace several bus_alloc_resource() calls using default arguments with bus_alloc_resource_any()
Since these calls only use default arguments, bus_alloc_resource_any() is the right call.
Differential Revision: https://reviews.freebsd.org/D5306
|
279752 |
07-Mar-2015 |
hselasky |
Add support for USB display link adapters to the FB and VT drivers. The vtophys() function is used to get the physical page address for the virtually allocated frame buffers when a physically continuous memory area is not available. This change also allows removing the masking of the FB_FLAG_NOMMAP flag in the PS3 syscons driver.
The FB and VT drivers were tested using X.org/xf86-video-scfb and syscons.
|
279488 |
01-Mar-2015 |
dumbbell |
vt(4): Add support to "downgrade" from eg. vt_fb to vt_vga
The main purpose of this feature is to be able to unload a KMS driver.
When going back from the current vt(4) backend to the previous backend, the previous backend is reinitialized with the special VDF_DOWNGRADE flag set. Then the current driver is terminated with the new "vd_fini" callback.
In the case of vt_fb and vt_vga, this allows the former to pass the vgapci device vt_fb used to vt_vga so the device can be rePOSTed.
Differential Revision: https://reviews.freebsd.org/D687
|
278846 |
16-Feb-2015 |
hselasky |
Forward the FBIO_BLANK IOCTL to framebuffer clients. Bump the FreeBSD version to force re-compilation of external video driver kernel modules.
Discussed with: ray @
|
277795 |
27-Jan-2015 |
avg |
vt(4): Use power_{suspend,resume} event handlers to implement suspend/resume
The goal is to avoid that the vt(4) resume happens before the video display is resumed. The original patch was provided by Andriy Gapon.
This new patch registers the handlers in vt_upgrade(). This is done once, thanks to the VDF_ASYNC flag. I abused this flag because it was already abused by the keyboard allocation. The event handlers then call the backend if it provides callbacks for suspend/resume.
Differential Revision: https://reviews.freebsd.org/D1004 On behalf of: dumbbell MFC after: 2 weeks
|
270720 |
27-Aug-2014 |
dumbbell |
vt(4): Fix mouse cursor handling in vt_fb/creator_vt/ofwfb
There were two issues: 1. The area given to vt_is_cursor_in_area() was adding the drawable area offset, something already handled by this function. 2. The cursor was shifted on the screen by the offset of this area and thus was misplaced or not erased. Furthermore, when reaching the bottom or right borders, the cursor was either totally removed or not erased correctly.
MFC after: 1 week
|
270613 |
25-Aug-2014 |
dumbbell |
vt(4): Store a rectangle for the drawable area, not just the top-left corner
This allows backends to verify they do not draw outside of this area. This fixes a bug in vt_vga where the text was happily drawn over the right and bottom margins, when using the Gallant font.
MFC after: 1 week
|
270431 |
23-Aug-2014 |
dumbbell |
vt(4): Add vd_bitblt_bmp_t callback
The code was already there in all backends, we just expose it. This is used to display the splash screen.
MFC after: 1 week
|
270412 |
23-Aug-2014 |
dumbbell |
creator_fb: Implement vd_bitblt_text_t
MFC after: 1 week
|
269783 |
10-Aug-2014 |
dumbbell |
vt(4): Colors are indexed against a console palette, not a VGA palette
Rename vt_generate_vga_palette() to vt_generate_cons_palette() and change it to build a palette where the color index is the same than in terminal escape codes, not the VGA index. That's what TCHAR_CREATE() uses and passes to vt(4).
The main differences between both orders are: o Blue and red are swapped (1 <-> 4) o Yellow and cyan are swapped (3 <-> 6)
The problem remained unnoticed, because the RGB bit indexes passed to vt_generate_vga_palette() were reversed. This inversion was cancelled by the colors inversions in the generated palette. For instance, red (0xff0000) and blue (0x0000ff) have bytes in opposite order, but were swapped in the palette. But after changing the value of blue (see last paragraph), the modified color was in fact the red one.
This commit includes a fix to creator_vt.c, submitted by Nathan Whitehorn: fb_cmsize is set to 16. Before this, the generated palette would be overwritte. This fixes colors on sparc64 with a Creator3D adapter.
While here, tune the palette to better match console colors and improve the readability (especially the dark blue).
Submitted by: nwhitehorn (fix to creator_vt.c) MFC after: 1 week
|
269779 |
10-Aug-2014 |
dumbbell |
fbd: Fix a bug where vt_fb_attach() success would be considered a failure
vt_fb_attach() currently always returns 0, but it could return a code defined in errno.h. However, it doesn't return a CN_* code. So checking its return value against CN_DEAD (which is 0) is incorrect, and in this case, a success becomes a failure.
The consequence was unimportant, because the caller (drm_fb_helper.c) would only log an error message in this case. The console would still work.
Approved by: nwhitehorn
|
269685 |
07-Aug-2014 |
nwhitehorn |
Retire vd_maskbitbltchr. The same functionality can be obtained by testing for mask != NULL in vd_bitbltchr, which all implementations of vd_bitbltchr() were doing anyway.
|
269620 |
06-Aug-2014 |
nwhitehorn |
Retire various intertwined bits of fbd(4) and vt_fb, in particular the pixel modification indirection. No actual drivers use it and those that might (e.g. creatorfb) use custom implementations of vd_bitbltchr().
|
269601 |
05-Aug-2014 |
nwhitehorn |
Add a simple unaccelerated vt(4) framebuffer driver for Sun framebuffers handled by creator(4) (Sun Creator 3D, Elite 3D, etc.). This provides vt(4) consoles on all devices currently supported by syscons on sparc64. The driver should also be easily adaptable to support newer Sun framebuffers such as the XVR-500 and higher.
Many thanks to dumbbell@ (Jean-Sebastien Pedron) for testing this remotely during development.
|
268771 |
16-Jul-2014 |
nwhitehorn |
Allow console drivers active from early boot to be used with xf86-video-scfb, rather than only drivers attached later on. This involves a small amount of code duplication with dev/fb/fbd.c, which will fixed later on.
Also improve performance of vt_blank() by making it not read from the framebuffer unnecessarily.
|
268472 |
09-Jul-2014 |
ray |
Should check fb_read method presence instead of double check for fb_write.
Pointed by: emaste
Sponsored by: The FreeBSD Foundation
|
268351 |
07-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
267992 |
28-Jun-2014 |
hselasky |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
267985 |
27-Jun-2014 |
gjb |
Revert r267961, r267973:
These changes prevent sysctl(8) from returning proper output, such as:
1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
267961 |
27-Jun-2014 |
hselasky |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel.
Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change.
MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
262613 |
28-Feb-2014 |
dim |
Merge the projects/clang-sparc64 branch back to head. This brings in several updates from the llvm and clang trunks to make the sparc64 backend fully functional.
Apart from one patch to sys/sparc64/include/pcpu.h which is still under discussion, this makes it possible to let clang fully build world and kernel for sparc64.
Any assistance with testing this on actual sparc64 hardware is greatly appreciated, as there will unavoidably be bugs left.
Many thanks go to Roman Divacky for his upstream work on getting the sparc64 backend into shape.
MFC after: 1 month
|
260047 |
29-Dec-2013 |
emaste |
Clean up license text
- Renumber Regents clauses - Remove clause 3 and 4 from TNF license, following upstream change
|
259777 |
23-Dec-2013 |
ray |
o Add virtual terminal mmap request handler. o Forward termianl framebuffer ioctl to fbd. o Forward terminal mmap request to fbd. o Move inclusion of sys/conf.h to vt.h.
Sponsored by: The FreeBSD Foundation
|
259016 |
05-Dec-2013 |
ray |
Merge VT(9) project (a.k.a. newcons).
Reviewed by: nwhitehorn MFC_to_10_after: re approval
Sponsored by: The FreeBSD Foundation
|
255004 |
28-Aug-2013 |
jkim |
Reduce diff against stable/9 slightly.
|
254999 |
28-Aug-2013 |
jkim |
Do not save/restore video memory if we are not using linear frame buffer. Note this partially revert r233896.
|
254998 |
28-Aug-2013 |
jkim |
Make sure to free stale buffer before allocating new one for safety.
|
254997 |
28-Aug-2013 |
jkim |
Avoid unnecessary signedness conversion.
|
248799 |
27-Mar-2013 |
jkim |
Limit the amount of video memory we map for the driver to the maximum value. This basically restores the spirit of r203535, which was partially reverted in r205557, while we still map fixed amount to work around transient issues we experienced with r203535.
Prodded by: avg Tested by: avg MFC after: 1 week
|
239696 |
26-Aug-2012 |
gonzo |
Piggyback MIPS changes and add ARM syscons support for devices with framebuffer
While here - sort #if defined() order alphabetically
|
239670 |
25-Aug-2012 |
rwatson |
Provide basic glue to allow syscons to be used on MIPS, modelled on PowerPC support. This was clearly not something syscons was designed to do (very specific assumptions about the nature of VGA consoles on PCs), but fortunately others have long since blazed the way on making it work regardless of that.
Sponsored by: DARPA, AFRL
|
237223 |
18-Jun-2012 |
phk |
Fix the previous commit to only copy the data we were asked to and not twice as much.
Spotted by: Taku YAMAMOTO
|
237203 |
17-Jun-2012 |
phk |
On certain newer Intel Atom based motherboards, for instance the D2500CC which I have, syscons in text-mode fails to show the expected contents due to write errors into video-memory.
At least one of the causes is that we copy from syscons internal buffer to the video memory with optimized bcopy(9) which uses >16bit operations.
Until now, 32bit and wider operations have always worked on the video memory, but since I cannot find a single source which says that this SHALL work, and since these chipsets/bugs are now out there, this commit changes syscons to always use 16bit copies on i386 & amd64.
This may be relevevant for PR's: 166262 166639 and various other bug reports floating elsewhere on the net, but I lack hardware to test those.
|
234362 |
16-Apr-2012 |
jkim |
Fix a Clang warning.
Submitted by: arundel
|
233896 |
04-Apr-2012 |
jkim |
Save and restore VGA display memory between suspend and resume.
|
233894 |
04-Apr-2012 |
jkim |
Do not copy VESA state buffer if the VBE call has failed for any reason. Do not unnecessarily clear the state buffer before calling the function.
|
233892 |
04-Apr-2012 |
jkim |
Remove a useless warning. The mode information is unused for very long time and this function may be used with VESA mode since r232069.
|
233187 |
19-Mar-2012 |
jkim |
Do not reuse the previous address when restoring linear frame buffer.
|
233056 |
17-Mar-2012 |
jkim |
Save and restore linear frame buffer between suspend and resume.
MFC after: 1 week
|
233054 |
17-Mar-2012 |
jkim |
Remove unnecessary static variable initializations and duplicate codes. Consistently use bcopy(9) over memcpy(9).
|
233042 |
16-Mar-2012 |
jkim |
Do not unnecessarily clear display memory when switching modes.
MFC after: 3 days
|
232069 |
23-Feb-2012 |
jkim |
If the VBE implementation does not support save/restore function, defer to VGA methods. Unconditionally reset the VESA adapter before restoring state.
|
232065 |
23-Feb-2012 |
jkim |
Update my copyright date.
|
232063 |
23-Feb-2012 |
jkim |
Probe supported states for save/restore function. Some VBE implementation refuses to save/restore states if an unsupported bit is set.
|
232061 |
23-Feb-2012 |
jkim |
Fix a typo introduced in r231843.
|
231843 |
16-Feb-2012 |
jkim |
Set the initial mode for the adapter after executing VESA BIOS POST. There is no need to set initial mode for BIOS.
|
231842 |
16-Feb-2012 |
jkim |
Make sure the VESA mode number is between 256 and 511 inclusive.
|
231841 |
16-Feb-2012 |
jkim |
Properly check VESA video mode number.
|
230134 |
15-Jan-2012 |
uqs |
Convert files to UTF-8
|
230132 |
15-Jan-2012 |
uqs |
Convert files to UTF-8
|
228445 |
12-Dec-2011 |
eadler |
- Add support for ASCII art splash screens in TheDraw format
PR: kern/143370 Submitted by: Antony Mawer <antony@mawer.org> Reviewed by: gjb (doc) Reviewed by: des (style) Approved by: ed MFC after: 1 month
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
225931 |
02-Oct-2011 |
marius |
Make sparc64 compatible with NEW_PCIB and enable it: - Implement bus_adjust_resource() methods as far as necessary and in non-PCI bridge drivers as far as feasible without rototilling them. - As NEW_PCIB does a layering violation by activating resources at layers above pci(4) without previously bubbling up their allocation there, move the assignment of bus tags and handles from the bus_alloc_resource() to the bus_activate_resource() methods like at least the other NEW_PCIB enabled architectures do. This is somewhat unfortunate as previously sparc64 (ab)used resource activation to indicate whether SYS_RES_MEMORY resources should be mapped into KVA, which is only necessary if their going to be accessed via the pointer returned from rman_get_virtual() but not for bus_space(9) as the later always uses physical access on sparc64. Besides wasting KVA if we always map in SYS_RES_MEMORY resources, a driver also may deliberately not map them in if the firmware already has done so, possibly in a special way. So in order to still allow a driver to decide whether a SYS_RES_MEMORY resource should be mapped into KVA we let it indicate that by calling bus_space_map(9) with BUS_SPACE_MAP_LINEAR as actually documented in the bus_space(9) page. This is implemented by allocating a separate bus tag per SYS_RES_MEMORY resource and passing the resource via the previously unused bus tag cookie so we later on can call rman_set_virtual() in sparc64_bus_mem_map(). As a side effect this now also allows to actually indicate that a SYS_RES_MEMORY resource should be mapped in as cacheable and/or read-only via BUS_SPACE_MAP_CACHEABLE and BUS_SPACE_MAP_READONLY respectively. - Do some minor cleanup like taking advantage of rman_init_from_resource(), factor out the common part of bus tag allocation into a newly added sparc64_alloc_bus_tag(), hook up some missing newbus methods and replace some homegrown versions with the generic counterparts etc. - While at it, let apb_attach() (which can't use the generic NEW_PCIB code as APB bridges just don't have the base and limit registers implemented) regarding the config space registers cached in pcib_softc and the SYSCTL reporting nodes set up.
|
218661 |
13-Feb-2011 |
marcel |
Use the preload_fetch_addr() and preload_fetch_size() convenience functions to obtain the address and size of the bitmap splash image.
Sponsored by: Juniper Networks.
|
212580 |
13-Sep-2010 |
jkim |
Fix segment:offset calculation of interrupt vector for relocated video BIOS when the original offset is bigger than size of one page. X86BIOS macros cannot be used here because it is assumed address is only linear in a page.
Tested by: netchild
|
212154 |
02-Sep-2010 |
jkim |
Disable video ROM shadowing by default as I originally intended. I found a case where video ROM for an IGP is too tightly coupled with system BIOS to get relocated.
|
212070 |
31-Aug-2010 |
jkim |
Make sure the interrupt entry point is within the video ROM range. We must not change interrupt vector if it is not pointing the ROM itself. Actually, we just fail shadowing altogether if that is the case because the shadowed copy will be useless for sure and POST may not be relocatable or useful. While I'm here, fix a debugging message under bootverbose, really. r211829 fixed one case but broke another. Mea Culpa.
|
211829 |
25-Aug-2010 |
jkim |
Fix a debugging message under bootverbose. This address is not linear.
|
211827 |
25-Aug-2010 |
jkim |
Add an experimental feature to shadow video BIOS. Long ago, this trick was supported by many BIOSes to improve performance of VESA BIOS calls for real mode OSes but it is not our intention here. However, this may help some platforms where the video ROMs are inaccessible after suspend, for example. Note it may consume up to 64K bytes of contiguous memory depending on video controller model when it is enabled. This feature can be disabled by setting zero to 'debug.vesa.shadow_rom' loader tunable via loader(8) or loader.conf(5). The default is 1 (enabled), for now.
|
210994 |
07-Aug-2010 |
jkim |
Protect shared palette and state buffer with a mutex. Remove defunct spltty() calls while I am here.
|
210017 |
13-Jul-2010 |
jkim |
Initialize a variable before its use.
|
210016 |
13-Jul-2010 |
jkim |
Preallocate buffers for palette and state. Do not save DAC registers as we reset DAC mode and restore palette data while we are resuming always.
|
209740 |
06-Jul-2010 |
jkim |
Plug a possible memory leak.
Submitted by: Yamagi Burmeister (lists at yamagi dot org)
|
209737 |
06-Jul-2010 |
jkim |
Fix a possible null pointer dereference. A patch for -STABLE was
Submitted by: Yamagi Burmeister (lists at yamagi dot org)
|
209491 |
23-Jun-2010 |
jkim |
Use M_WAITOK for VESA BIOS initialization consistently.
|
209472 |
23-Jun-2010 |
jkim |
Let x86bios_alloc() pass contigmalloc(9) flags. Use it to set M_WAITOK from VESA BIOS initialization. All other malloc(9) uses in the function is blocking any way.
|
209460 |
23-Jun-2010 |
kib |
Remove unused i586 optimized bcopy/bzero/etc implementations that utilize FPU registers for copying. Remove the switch table and jumps from bcopy/bzero/... to the actual implementation. As a side-effect, i486-optimized bzero is removed.
Reviewed by: bde Tested by: pho (previous version)
|
208279 |
18-May-2010 |
jkim |
Restore the previous VESA mode after BIOS POST, just in case.
|
208276 |
18-May-2010 |
jkim |
Remove unnecessary pointer increment. A wrong pointer may be passed to free(9) and it can cause kernel panic when there are multiple graphics controllers in the system.
Tested by: Brandon Gooch (jamesbrandongooch at gmail dot com) MFC after: 3 days
|
206384 |
07-Apr-2010 |
jkim |
Allocate memory for VBE info block with malloc(9), not as static local.
|
205653 |
25-Mar-2010 |
jkim |
Do not penalize correct or correctable VESA mode tables by calling another VBE function. Most problems should be corrected by the mode table sanity check and we only need the paranoid in extremely rare cases.
|
205604 |
24-Mar-2010 |
jkim |
Teach VGA framebuffer about 8-bit palette format for VESA.
|
205566 |
23-Mar-2010 |
jkim |
Add my copyright here. It seems I have contributed enough code. :-)
|
205564 |
23-Mar-2010 |
jkim |
Be extremely careful when we determine bytes per scan line information. First, we compare mode table data against minimum value. If the mode table does not make sense, we set the minimum in the mode info. When we actually set the mode, we try VESA BIOS function and compare it against the previous value. If it makes more sense, update the information.
|
205558 |
23-Mar-2010 |
jkim |
Fall back to VGA palette functions if VESA function failed and DAC is still in 6-bit mode. Although we have to check non-VGA compatibility bit here, it seems there are too many broken VESA BIOSes out to rely on it.
|
205557 |
23-Mar-2010 |
jkim |
Map entire video memory again. This is a partial backout of r203535. Although we do not use them all directly, it seems VGA render may access unmapped memory region and cause kernel panic.
|
204265 |
23-Feb-2010 |
jkim |
Yet another attempt to make palette loading more safer:
- Add a separate palette data for 8-bit DAC mode when SC_PIXEL_MODE is set and fill it up with default gray-scale palette data for text. Now we don't have to set `hint.sc.0.vesa_mode' to get the default palette data. - Add a new adapter flag, V_ADP_DAC8 to track whether the controller is using 8-bit palette format and load correct palette when switching modes. - Set 8-bit DAC mode only for non-VGA compatible graphics mode.
|
204236 |
23-Feb-2010 |
jkim |
Re-add accidentally removed pixel format for direct memory model.
|
204235 |
23-Feb-2010 |
jkim |
Fix FBIO_ADPINFO ioctl on amd64.
|
203535 |
06-Feb-2010 |
jkim |
Map and report actual video memory we need.
|
203530 |
05-Feb-2010 |
jkim |
Replace some homegrown functions with better/correct ones.
|
203455 |
03-Feb-2010 |
jkim |
Remove dead code and fix style(9) bugs.
|
203453 |
03-Feb-2010 |
jkim |
Use bytes per scan line from mode table. The previous implementation did not reflect actual number of bytes when it was not exactly width * bpp * 8.
|
203451 |
03-Feb-2010 |
jkim |
Correct virtual address of frame buffer for non-linear mode.
Reported by: Marc UBM Bocklet (ubm dot freebsd at googlemail dot com)
|
203078 |
27-Jan-2010 |
jkim |
Use VESA palette load/save functions if VESA BIOS says the current palette format is higher than 6-bit instead of relying VGA compatibility flag. This fixes palette problem of NVIDIA GeForce 6600. Reduce code differences between palette load/save functions while we are here.
Tested by: danfe
|
201223 |
29-Dec-2009 |
rnoland |
Update d_mmap() to accept vm_ooffset_t and vm_memattr_t.
This replaces d_mmap() with the d_mmap2() implementation and also changes the type of offset to vm_ooffset_t.
Purge d_mmap2().
All driver modules will need to be rebuilt since D_VERSION is also bumped.
Reviewed by: jhb@ MFC after: Not in this lifetime...
|
199230 |
12-Nov-2009 |
jkim |
- Remove a redundant check for dpms(4). - Test a cheaper function first.
|
199229 |
12-Nov-2009 |
jkim |
- Partially revert hackish r198964 and r199002. - Add a proxy driver vgapm to help vgapci to save/load VGA state. - Move device_set_desc() to the right place while we are here.
Reviewed by: jhb
|
199002 |
06-Nov-2009 |
jkim |
Remove duplicate suspend/resume code from vga_pci.c and let vga(4) register itself to an associated PCI device if it exists. It is little bit hackish but it should fix build without frame buffer driver since r198964. Fix some style(9) nits in vga_isa.c while we are here.
|
198964 |
05-Nov-2009 |
jkim |
Save/restore VGA state from vga_pci.c instead of relying on vga_isa.c. It was not working because we were saving its state after the device was powered down. Simplify vesa_load_state() as the culprit is fixed now.
|
198911 |
04-Nov-2009 |
jkim |
Do not probe video mode if we are not going to use it.
|
198867 |
04-Nov-2009 |
jkim |
Restore color palette format if we reset video mode.
|
198866 |
04-Nov-2009 |
jkim |
Save/restore VGA color palette while suspending and resuming.
|
198858 |
03-Nov-2009 |
jkim |
Fix VESA color palette corruption:
- VBE 3.0 says palette format resets to 6-bit mode when video mode changes. We simply set 8-bit mode when we switch modes if the adapter supports it. - VBE 3.0 also says if the mode is not VGA compatible, we must use VBE function to save/restore palette. Otherwise, VGA function may be used. Thus, reinstate the save/load palette functions only for non-VGA compatible modes regardless of its palette format. - Let vesa(4) set VESA modes even if vga(4) claims to support it. - Reset default palette if VESA pixel mode is set initially. - Fix more style nits.
|
198423 |
23-Oct-2009 |
jkim |
Remove a redundant byte swapping in the previous commit.
|
198419 |
23-Oct-2009 |
jkim |
- When we restore VESA state, try BIOS POST earlier. VESA restore state function may not work properly if we don't. Turn off hardware cursor as vesa_set_mode() does. - Add VBE 3.0 specific fields in VESA mode structure and pack it. Note the padding is 190 bytes although VBE 3.0 says 189 bytes. It must be wrong because the size of structure becomes 255 bytes and the specification says it must be 256 bytes in total. In fact, an example code in the spec. does it right, though. While we are at it, fix some i386-isms. - Remove state buffer size limitation. It is no longer necessary since sys/compat/x86bios/x86bios.c r198251. - Move int 0x10 vector test into vesa_bios_post() as we always do it anyway.
|
198251 |
19-Oct-2009 |
jkim |
Rewrite x86bios and update its dependent drivers.
- Do not map entire real mode memory (1MB). Instead, we map IVT/BDA and ROM area separately. Most notably, ROM area is mapped as device memory (uncacheable) as it should be. User memory is dynamically allocated and free'ed with contigmalloc(9) and contigfree(9). Remove now redundant and potentially dangerous x86bios_alloc.c. If this emulator ever grows to support non-PC hardware, we may implement it with rman(9) later. - Move all host-specific initializations from x86emu_util.c to x86bios.c and remove now unnecessary x86emu_util.c. Currently, non-PC hardware is not supported. We may use bus_space(9) later when the KPI is fixed. - Replace all bzero() calls for emulated registers with more obviously named x86bios_init_regs(). This function also initializes DS and SS properly. - Add x86bios_get_intr(). This function checks if the interrupt vector is available for the platform. It is not necessary for PC-compatible hardware but it may be needed later. ;-) - Do not try turning off monitor if DPMS does not support the state. - Allocate stable memory for VESA OEM strings instead of just holding pointers to them. They may or may not be accessible always. Fix a memory leak of video mode table while I am here. - Add (experimental) BIOS POST call for vesa(4). This function calls VGA BIOS POST code from the current VGA option ROM. Some video controllers cannot save and restore the state properly even if it is claimed to be supported. Usually the symptom is blank display after resuming from suspend state. If the video mode does not match the previous mode after restoring, we try BIOS POST and force the known good initial state. Some magic was taken from NetBSD (and it was taken from vbetool, I believe.) - Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4) to identify who owns the VESA BIOS. This is very useful for multi-display adapter setup. By default, the POST video controller is automatically probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding vgapci unit number. You may override it from loader but it is very unlikely to be necessary. Unfortunately only AGP/PCI/PCI-E controllers can be matched because ISA controller does not have necessary device IDs. - Fix a long standing bug in state save/restore function. The state buffer pointer should be ES:BX, not ES:DI according to VBE 3.0. If it ever worked, that's because BX was always zero. :-) - Clean up register initializations more clearer per VBE 3.0. - Fix a lot of style issues with vesa(4).
|
197496 |
25-Sep-2009 |
jkim |
Reject some VESA graphics modes if the controller does not have enough memory to support them. Some adapters have expansible memory slots but video mode table is static. In this case, unusable modes may be reported.
Submitted by: paradox (ddkprog yahoo com) (initial patch)
|
197478 |
25-Sep-2009 |
delphij |
Fix LINT build.
|
197468 |
24-Sep-2009 |
jkim |
Some broken VESA BIOSes, e.g., IBM T23, return wrong value from vesa_bios_get_line_length() in graphics mode. Always calculate the value from known video info instead.
Submitted by: paradox (ddkprog yahoo com)
|
197466 |
24-Sep-2009 |
jkim |
- Use FreeBSD function naming convention. - Change x86biosCall() to more appropriate x86bios_intr().[1]
Discussed with: delphij, paradox (ddkprog yahoo com) Submitted by: paradox (ddkprog yahoo com)[1]
|
197444 |
23-Sep-2009 |
jkim |
Move sys/dev/x86bios to sys/compat/x86bios.
It may not be optimal but it is clearly better than the old place.
OK'ed by: delphij, paradox (ddkprog yahoo com)
|
197424 |
23-Sep-2009 |
delphij |
Initialize registers to zero before calling the interrupt handlers inside emulator. This fixes VESA related freeze observed on some systems.
Submitted by: paradox <ddkprog yahoo com>
|
197387 |
21-Sep-2009 |
delphij |
Style(9) fixes.
Submitted by: swell.k at gmail.com
|
197383 |
21-Sep-2009 |
delphij |
Collapase interrupt supporting functions to a new module, and switch from x86emu to this new module.
This changeset also brings a fix for bugs introduced with the initial x86emu commit, which prevents the user from using some display mode or cause instant reboots during mode switch.
Submitted by: paradox <ddkprog yahoo com>
|
197379 |
21-Sep-2009 |
delphij |
Enable s3pci on amd64 which works on top of VESA, and allow static building it into kernel on i386 and amd64.
Submitted by: swell.k at gmail.com
|
197323 |
19-Sep-2009 |
jkim |
Change cache attribute for VESA frame buffer from UC to write-combining. This improves scrolling speed for high resolution graphics mode console.
|
197185 |
14-Sep-2009 |
delphij |
Enable BIOS modes on amd64.
Submitted by: paradox <ddkprog at yahoo com>
|
197025 |
09-Sep-2009 |
delphij |
- Teach vesa(4) and dpms(4) about x86emu. [1] - Add vesa kernel options for amd64. - Connect libvgl library and splash kernel modules to amd64 build. - Connect manual page dpms(4) to amd64 build. - Remove old vesa/dpms files.
Submitted by: paradox <ddkprog yahoo com> [1], swell k at gmail.com (with some minor tweaks)
|
197022 |
09-Sep-2009 |
delphij |
Copy the following files to new places, a subsequent commit would remove them from the old place. This commit necessary so that the tree would not enter a broken state.
sys/i386/isa/vesa.c -> dev/fb/vesa.c sys/i386/include/pc/vesa.h -> dev/fb/vesa.h sys/i386/isa/dpms.c -> dev/dpms/dpms.c
|
191638 |
28-Apr-2009 |
marius |
- Change some softc members to be unsigned where more appropriate. - Add some missing const. - Move the size of the window spun by the registers to the softc as neither using va_mem_size for this nor va_mem_base for the start of the bus addresses is appropriate.
MFC after: 1 week
|
191077 |
14-Apr-2009 |
marius |
Fix whitespace.
|
191076 |
14-Apr-2009 |
marius |
- Remove the second license as I'm also fine with the first one. - Remove redundant softc members for RIDs. - Change some softc members to be unsigned where more appropriate. - Add some missing const. - Remove support for mmap(2)'ing VGA I/O as it was broken [1] and not required by X.Org anyway. - Fix some confusion between bus, physical and virtual addresses which mostly consisted in using members of struct video_adapter inappropriately but wasn't fatal except for the regular framebuffer mmap(2)'ing. - Remove redundant bzero(9)'ing of the softc. - Don't map the framebuffer twice in case the firmware has already mapped it as besides wasting resources this isn't possible with all MMUs. This is a bit tricky as a) just because the firmware provides a property with a virtual address doesn't mean it's actually mapped (but typically is when the framebuffer is the console) and b) the firmware doesn't necessarily map the it with the same byteorder as we do. This make machfb(4) work on machines with cheetah-class MMUs (including X.Org).
Reported by: Michael Plass [1] MFC after: 3 days
|
191072 |
14-Apr-2009 |
marius |
Fix whitespace.
|
185451 |
29-Nov-2008 |
kib |
Third argument to the vi_mmap_t function is vm_paddr_t *.
MFC after: 3 days
|
183397 |
27-Sep-2008 |
ed |
Replace all calls to minor() with dev2unit().
After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware.
Reviewed by: kib
|
178193 |
14-Apr-2008 |
phk |
Convert amd64 and i386 to share the atrtc device driver.
|
174985 |
29-Dec-2007 |
wkoszek |
Replace explicit calls to video methods with their respective variants implemented with macros. This patch improves code readability. Reasoning behind vidd_* is a sort of "video discipline".
List of macros is supposed to be complete--all methods of video_switch ought to have their respective macros from now on.
Functionally, this code should be no-op. My intention is to leave current behaviour of touched code as is.
No objections: rwatson Silence on: freebsd-current@ Approved by: cognet
|
171382 |
11-Jul-2007 |
mjacob |
Remove the internal use of __packed and put it on the structures themselves.
Reviewed by: nate, peter, warner, robert Approved by: re (ken)
|
170840 |
16-Jun-2007 |
marius |
Move the gallant 12 x 22 font data from a .h to a .c so it doesn't need to be compiled into every driver making use of it. Use a const instance of struct gfb_font for this as the font isn't intended to be changed at run-time and in order to accompany the font data with height and width info.
|
170837 |
16-Jun-2007 |
marius |
- Define data of struct gfb_font a const as it's only used to supply font data and remove the array size from the definition as f.e. the gallant 12 x 22 font data is 256 * 44 in size, exceeding the previously hard- coded size. - Declare the bold8x16 instance of struct gfb_font as const as it's not intended to be changed at run-time as a whole either. - Use __FBSDID in xboxfb.c
Tested by: rink
|
167308 |
07-Mar-2007 |
marius |
Rototill the sparc64 nexus(4) (actually this brings in the code the sun4v nexus(4) in turn is based on): o Change nexus(4) to manage the resources of its children so the respective device drivers don't need to figure them out of OFW themselves. o Change nexus(4) to provide the ofw_bus KOBJ interface instead of using IVARs for supplying the OFW node and the subset of standard properties of its children. Together with the previous change this also allows to fully take advantage of newbus in that drivers like fhc(4), which attach on multiple parent busses, no longer require different bus front-ends as obtaining the OFW node and properties as well as resource allocation works the same for all supported busses. As such this change also is part 4/4 of allowing creator(4) to work in USIII-based machines as it allows this driver to attach on both nexus(4) and upa(4). On the other hand removing these IVARs breaks API compatibility with the powerpc nexus(4) but which isn't that bad as a) sparc64 currently doesn't share any device driver hanging off of nexus(4) with powerpc and b) they were no longer compatible regarding OFW-related extensions at the pci(4) level since quite some time. o Provide bus_get_dma_tag methods in nexus(4) and its children in order to handle DMA tags in a hierarchical way and get rid of the sparc64_root_dma_tag kludge. Together with the previous two items this changes also allows to completely get rid of the nexus(4) IVAR interface. It also includes: - pushing the constraints previously specified by the nexus_dmatag down into the DMA tags of psycho(4) and sbus(4) as it's their IOMMUs which induce these restrictions (and nothing at the nexus(4) or anything that would warrant specifying them there), - fixing some obviously wrong constraints of the psycho(4) and sbus(4) DMA tags, which happened to not actually be used with the sparc64_root_dma_tag kludge in place and therefore didn't cause problems so far, - replacing magic constants for constraints with macros as far as it is obvious as to where they come from. This doesn't include taking advantage of the newbus way to get the parent DMA tags implemented by this change in order to divorce the IOTSBs of the PCI and SBus IOMMUs or for implementing the workaround for the DMA sync bug in Sabre (and Tomatillo) bridges, yet, though. o Get rid of the notion that nexus(4) (mostly) reflects an UPA bus by replacing ofw_upa.h and with ofw_nexus.h (which was repo-copied from ofw_upa.h) and renaming its content, which actually applies to all of Fireplane/Safari, JBus and UPA (in the host bus case), as appropriate. o Just use M_DEVBUF instead of a separate M_NEXUS malloc type for allocating the device info for the children of nexus(4). This is done in order to not need to export M_NEXUS when deriving drivers for subordinate busses from the nexus(4) class. o Use the DEFINE_CLASS_0() macro to declare the nexus(4) driver so we can derive subclasses from it. o Const'ify the nexus_excl_name and nexus_excl_type arrays as well as add 'associations' and 'rsc', which are pseudo-devices without resources and therefore of no real interest for nexus(4), to the former. o Let the nexus(4) device memory rman manage the entire 64-bit address space instead of just the UPA_MEMSTART to UPA_MEMEND subregion as Fireplane/Safari- and JBus-based machines use multiple ranges, which can't be as easily divided as in the case of UPA (limiting the address space only served for sanity checking anyway). o Use M_WAITOK instead of M_NOWAIT when allocating the device info for children of nexus(4) in order to give one less opportunity for adding devices to nexus(4) to fail. o While adapting the drivers affected by the above nexus(4) changes, change them to take advantage of rman_get_rid() instead of caching the RIDs assigned to allocated resources, now that the RIDs of resources are correctly set. o In iommu(4) and nexus(4) replace hard-coded functions names, which actually became outdated in several places, in panic strings and status massages with __func__. [1] o Use driver_filter_t in prototypes where appropriate. o Add my copyright to creator(4), fhc(4), nexus(4), psycho(4) and sbus(4) as I changed considerable amounts of these drivers as well as added a bunch of new features, workarounds for silicon bugs etc. o Fix some white space nits.
Due to lack of access to Exx00 hardware, these changes, i.e. central(4) and fhc(4), couldn't be runtime tested on such a machine. Exx00 are currently reported to panic before trying to attach nexus(4) anyway though.
PR: 76052 [1] Approved by: re (kensmith)
|
166090 |
18-Jan-2007 |
marius |
On sparc64 also use the fillw() this header provides for ia64 so the sparc64 MD code doesn't need to provide a memsetw() along with the ISA compat cruft.
|
166059 |
16-Jan-2007 |
marius |
- Merge sys/sparc64/creator/creator_upa.c into sys/dev/fb/creator.c. The separate bus front-end was inherited from the OpenBSD creator(4), which at that time had a mainbus(4) (for USI/II machines, which use an UPA interconnection bus as the nexus) and an upa(4) (for USIII machines, which use a subordinate/slave UPA bus hanging off from the Fireplane/Safari interconnection bus) front-end. With FreeBSD and newbus there is/will be no need to have two separate bus front-ends for these busses, so we can easily coallapse the shared front-end and the back-end into a single source file (note that the FreeBSD creator_upa.c was misnomer anyway; based on what it actually attached to that should have been creator_nexus.c), actually OpenBSD meanwhile also has moved to a shared front-end and a single source file. Due to the low-level console support creator.c also wasn't free from bus related things before. While at it, also split sys/sparc64/creator/creator.h into a sys/dev/fb/creatorreg.h that only contains register macros and move the structures to the top of sys/dev/fb/creator.c as suggested by style(9) so creator(4) is no longer scattered over two directories. - Use OF_decode_addr()/sparc64_fake_bustag() to obtain the bus tags and handles for the low-level console support instead of hardcoding support for AFB/FFB hanging off from nexus(4) only. This is part 2/4 of allowing creator(4) to work in USIII machines (which have a UPA bus hanging off from the Fireplane/Safari bus reflected by the nexus), which already makes it work as the low-level console there. - Allocate resources in the bus attach routine regardless of whether creator(4) is used as for the low-level console and thus the required bus tags and handles have been already obtained or not so the resources are marked as taken in the respective RMAN. - For both obtaining the bus tags and handles for the low-level console support as well as allocating the corresponding resources in the regular bus attach routine don't bother to get all for the maximum of 24 register banks but only (for) the two tag/handle pairs required for providing the video interface for syscons(4) support. If we can't allocate the rest of them just limit the memory range accessible via creator_fb_mmap() accordingly. - Sanity check the memory range spanned by the first and last resources and the resources in between as far as possible, as the XFree86/Xorg sunffb(4) expects to be able to access the whole region, even though the backing resources are actually non-continuous. Limit and check the memory range accessible via creator_fb_mmap() accordingly. - Reduce the size of buffers for OFW properties to what they actually need to hold. - Rename some tables to creator_<foo> for consistency. - Also for the sizes in the creator_fb_mmap() mapping table entries use macros for consistency, add macros for the remaining register banks for completeness.
|
165881 |
08-Jan-2007 |
marius |
- Garbage collect more alpha remnants. - Fix a typo in a comment in boot_font.c.
|
161590 |
24-Aug-2006 |
marius |
Remove the DPMS code in creator_blank_display(), as it causes some LCDs to blink in the V_DISPLAY_ON case, at least in combination with some 13W3-VGA-adaptors (what's exactly going on is unclear though, as it happens when all of H-sync, V-sync and video output are enabled and not touching the sync bits from the preset fixes it). Thus creator_blank_display() now is reduced to turning the video output on/off. Although that DPMS code did what the XFree86/Xorg sunffb(4x) does, it was questionable in the first place, as both implementations also turn(ed) off the video output on standby and suspend, thus most likely causing the monitor to turn off instead of entering standby or suspend as intended (at least my monitors don't).
Reported and tested by: Patrick Reich MFC after: 3 days
|
158651 |
16-May-2006 |
phk |
Since DELAY() was moved, most <machine/clock.h> #includes have been unnecessary.
|
158468 |
12-May-2006 |
jhb |
Remove some tga bits I missed.
|
153165 |
06-Dec-2005 |
ru |
Fix -Wundef warnings from compiling GENERIC and LINT kernels of all architectures.
|
153084 |
04-Dec-2005 |
ru |
Fix -Wundef from compiling the amd64 LINT.
|
153072 |
04-Dec-2005 |
ru |
Fix -Wundef.
|
152148 |
07-Nov-2005 |
imp |
Remove unecessary include file. machine/rpb.h is very alpha specific and is not needed for this font, which isn't alpha speciifc.
|
150686 |
28-Sep-2005 |
marius |
Add a font width argument to vi_load_font_t, vi_save_font_t and vi_putm_t and do some preparations for handling 12x22 fonts (currently lots of code implies and/or hardcodes a font width of 8 pixels). This will be required on sparc64 which uses a default font size of 12x22 in order to add font loading and saving support as well as to use a syscons(4)-supplied mouse pointer image. This API breakage is committed now so it can be MFC'ed in time for 6.0 and later on upcoming framebuffer drivers destined for use on sparc64 and which are expected to rely on using font loading internally and on a syscons(4)-supplied mouse pointer image can be easily MFC'ed to RELENG_6 rather than requiring a backport.
Tested on: i386, sparc64, make universe MFC after: 1 week
|
147881 |
10-Jul-2005 |
marius |
- Declare lookup tables etc. const. [1] - Add a missing "ATI" in one of the device descriptions. - In machfb_init_engine() adjust a wait_for_fifo() call to the actual number of operations. - As a speed optimization cache setting the foreground and back- ground colors. - I got the meaning of V_DISPLAY_BLANK wrong, it's blank like turn off and not blank like turn on and clear the screen. So move clearing the screen to machfb_clear() were it hopefully belongs. - Properly implement V_DISPLAY_BLANK, V_DISPLAY_STAND_BY and V_DISPLAY_SUSPEND. This makes blank_saver.ko and green_saver.ko work. [1] - Implement machfb_load_palette() and machfb_save_palette() and set the V_ADP_PALETTE flag. This makes fade_saver.ko work. [2] - Install our 16-color color map only once and with an offset of 16 as the OBP driver expects white to be at index 0 and black at 255. This fixes the inversion of the colors back at the boot prompt after shutting down FreeBSD. This will also be handy if we ever want to implement breaking into OFW. Unfortunately there doesn't seem to be a better way to achieve this as e.g. bypassing the color map isn't supported by all Mach64 chips. - Move invalidating the cache variables to machfb_set_mode() and set the V_ADP_MODECHANGE flag. This causes machfb_set_mode() to be called when the X server shuts down. This hopefully will fix the screen corruption happening occasionally when shutting down the X server and which is present until switching to another VTY.
Inspired by: NetBSD [1] Based on: Xorg [2] Approved by: re (scottl)
|
147880 |
10-Jul-2005 |
marius |
- Declare lookup tables etc. const. - Let creator_bitblt() return ENODEV as it's not implemented (missed in sys/dev/fb/creator.c rev. 1.6). - As a speed optimization inline the creator_ras_wait() etc. helper functions and also cache setting the font increment, font width and plane mask. [1] - I got the meaning of V_DISPLAY_BLANK wrong, it's blank like turn off and not blank like turn on and clear the screen. So move clearing the screen to creator_clear() were it hopefully belongs. - Properly implement V_DISPLAY_BLANK, V_DISPLAY_STAND_BY and V_DISPLAY_SUSPEND. This makes blank_saver.ko and green_saver.ko work. [1] - Change the order of operations in creator_fill_rect(), i.e. write y before x and cy before cx. This fixes drawing the top part of the border with Elite3D cards when switching from Xorg to a VTY. - Move setting the chip configuration we use and invalidating the cache variables to creator_set_mode() and set the V_ADP_MODECHANGE flag. This causes creator_set_mode() to be called when the X server shuts down which fixes the screen corruption caused most of the time by Xorg not restoring the original configuration present at startup.
Inspired by/based on: Xorg [1] Approved by: re (scottl)
|
146971 |
04-Jun-2005 |
marius |
- In machfb_configure() when probed for the high-level console return the number of registered adapters instead of determining again whether stdout is a supported card (and which might have failed to attach and register). - Fix a bug in the handling of the FBIOSCURSOR IOCTL; the code was meant to return ENODEV for all invocations expect when used to disable the cursor and not just when used for enabling the cursor. - In case the adapter is the OFW stdout move its OFW cursor to the start of the last line on halt so OFW output doesn't get intermixed with what FreeBSD left on the screen. - Drop variable names in the prototypes of some functions in order to match the style of majority of the prototypes in this file.
|
146970 |
04-Jun-2005 |
marius |
- In creator_configure() when probed for the high-level console return the number of registered adapters instead of determining again whether stdout is a supported card (and which might have failed to attach and register). - Drop creator_set_mode() and move the relevant parts to creator_fill_rect() and creator_putc() respectively. This is a bit cleaner than having to make sure that creator_set_mode() was called before creator_fill_rect() or creator_putc() are used and matches better what Xorg does. - Fix a bug in the handling of the FBIOSCURSOR IOCTL; the code was meant to return ENODEV for all invocations expect when used to disable the cursor and not just when used for enabling the cursor. - In case the adapter is the OFW stdout move its OFW cursor to the start of the last line on halt so OFW output doesn't get intermixed with what FreeBSD left on the screen. With hindsight this is what the faking of a hardware cursor which was removed in the last revision really was about, i.e. to keep the OFW updated about the current cursor position. The new approach however is simpler while producing the same result and doesn't cause the first letter of the OFW output to be turned into a blank and a newline. - Add variable names to the prototypes of creator_cursor_*() which were added in the last revision and list them alphabetically in order to match the style of this file.
|
146734 |
29-May-2005 |
nyan |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
146482 |
21-May-2005 |
marius |
Add machfb(4), a driver for ATI Mach64 graphics chips intended for use with syscons(4) on sparc64. It's based on the respective NetBSD driver with some additional info (initialisation/hardware cursor) obtained from the Xorg 'ati' driver and some ideas taken from creator(4). ATI Mach64 chips ("ATI Rage") are quite common as low- end graphics chips in PCI-based sun4u machines and are used on-board in e.g. Blade 100 and a couple of OEM products. Most if not all of the Sun PGX add-on cards family (descriptions of the PGX32 are conflicting but most say it's a Rage Pro) are also based on these chips. Depending on the version of the OBP Mach64 cards destined for use in i386 machines also work in sun4u machines. The driver uses pixel mode with hardware acceleration as far as syscons(4) currently permits on sparc64 so text mode is already quite fast. The hardware cursor is used for the mouse pointer; for one because this is a "restriction" induced in syscons(4) on sparc64 by creator(4) and also because of issues with mapping the aperture when used as a low-level early during boot. Due to insufficiencies in the available documentation I didn't manage to get mode switch work properly (sync problems), yet. So for now this driver relies on the OBP having initialised a mode (as does creator(4)). On all of the tested machines is even true when using a serial console (and also not only when the OBP switched to a serial console because no keyboard is present). In general however the states the Mach64 chips are left in by the OBP vary a lot depending on the version of the OBP. This e.g. includes the aperture not being mapped in even when used as the console and the OBP just barfing when asked to map it. The latter is also the reason for the existence of this native driver in FreeBSD rather than taking an OFW frambuffer approach. Xorg is also happy to talk to these chips by mmap'ing them through this driver. For some hardware configs like on the Blade 100 a fix for the Xorg sparc64 MD bus code is however needed (added in version 6.8.2_2 of the xorg-server port). The video driver font loading and saving methods are not implemented, yet, as syscons(4) needs more work in that area to work viable on sparc64. With minor modifications machfb(4) would most likely also work on powerpc, when #ifdef'ing the OFW and possibly implementing mode setting probably also on the other archs. The latter is however not very practible at the moment as it would conflict with vga(4).
Tested/developed with: Rage II+ add-on card on AX1105 and AXi board, AXe board (on-board Rage Pro) Additional testing by: marcel (Ultra 5 w/ on-board Rage Pro), scottl (Naturetech GENIALstation 777S w/ on-board Rage Mobility M1), Michiel Boland and Ilmar S. Habibulin (Blade 100 w/ on-board Rage XL)
|
146480 |
21-May-2005 |
marius |
o creator(4): - Use register macros instead of magic values in the code. [1] - Check the return values of OF_getprop() and other stuff that actually can fail. - Let the unimplemented video driver methods return ENODEV rather than 0 so other code isn't tricked into thinking a certain operation was successfull. In case of e.g. the video driver creator_ioctl() this caused vidcontrol(1) to return random garbage information. Remove the TODO macros in the unimplemented video driver methods which did a printf("%s: unimplemented\n", __func__). Under certain circumstances these managed to invoke a printf() when a low-level console device wasn't attached, yet, causing a Fast Data Access MMU Miss. These macros were only really usefull for development anyway. - Set the struct video_adapter and struct video_info va_flags and vi_flags etc. as appropriate. - In creator_configure() don't rely on hitting the node which is the chosen console device first when searching the OFW tree for adapters compatible with this driver. Instead just check whether the chosen console device is a viable target for this driver. Targets that are not the console (including additional cards in multi-head configs) will be attached through creator_upa_attach(). I think this how the code in creator_configure() was actually meant to work. Honour the VIO_PROBE_ONLY flag and don't initialise and register the console device twice when creator_configure() is called a second time during sc_probe_unit(). Let creator_configure() return the number of the found adapters, i.e. 1 in case probing succeeds, as it's expected. The return values of video adapter configure functions however currently aren't checked so this doesn't make a difference at the moment. - In creator_upa_attach() don't rely on probing and attaching the adapter which is the console first, in case there are multiple adpaters and one of them is the console this could lead into using the video adapter unit 0 twice. - Make the check for DACs with inverted cursor control a bit more precise and actually honour that information when turning the cursor on or off. Add a helper function creator_cursor_enable() for this in order to keep code duplication low. [1] - Don't bother with faking a hardware cursor in case a device is the console. Apparently this was meant to start kernel output right after where the firmware left. In general this isn't worth the fuzz and also had no real effect as creator_set_mode() did clear the screen in any case, not just in case a device was not the console. - Implement creator_fill_rect() and use it to actually blank the display in creator_blank_display() when the mode is V_DISPLAY_BLANK, moving blanking the display out of creator_set_mode(). Use it also to implement creator_set_border() so the border can be re-drawn when switching to a VTY from X, exiting X, etc. (which leaves us with a black border most of the time). - Implement the video driver creator_ioctl(), moving the implementation of the IOCTL interface from the fbN CDEV version of creator_ioctl() into the video driver version and use the latter to implement the former. Use fb_commonioctl() to handle most of the FBIO IOCTLs. This gives programs like vidcontrol(1) which use the video driver creator_ioctl() a chance of working. Implement turning off the cursor via the FBIOSCURSOR IOCTL, which Xorg uses to in order to inform the OS that it's taking over the cursor. In creator_putm() check whether the cursor is enabled and (re-)install it if necessary, moving installing the cursor out of creator_init() and into a helper function creator_cursor_install(). This fixes the missing mouse pointer when switching to a VTY from X, exiting X, etc. - Some clean-up (remove unused/useless code, etc.).
o sparc64/creator/creator_upa.c / sparc64/sparc64/sc_machdep.c: - Attach syscons(4) as an own pseudo-device on the nexus rather than directly in creator_upa_attach(), similiar to attaching syscons(4) as a pseudo-device on isa(4) on other archs. This makes it a whole lot easier to do the right thing in multi-head configs, especially with different types of graphics adapters. [2] - Set SC_AUTODETECT_KBD by default so USB keyboards work out of the box. [2]
Based on/obtained from: Xorg 'ffb' driver [1] Based on/obtained from: FreeBSD/powerpc [2]
|
146479 |
21-May-2005 |
marius |
- Remove duplicate FBSDID. - Start copyright comments with /*- where missing.
|
144146 |
26-Mar-2005 |
sam |
check copyin return values when loading pallete
Noticed by: Coverity Prevent analysis tool
|
143161 |
05-Mar-2005 |
imp |
Use BUS_PROBE_DEFAULT for pci probe return value
|
142833 |
28-Feb-2005 |
iedowse |
Save and restore the VGA state across a suspend-resume cycle. This is particularly useful when VESA is available (either `options VESA' or load the vesa module), as BIOSes in some notebooks may correctly save and restore LCD panel settings using VESA in cases where calling the video BIOS POST is not effective. On some systems it may also be necessary to set the hw.acpi.reset_video sysctl to 0.
|
139749 |
06-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-, minor shuffle of lines
|
138891 |
15-Dec-2004 |
ru |
Fixed compilation warnings with option VGA_NO_MODE_CHANGE.
PR: kern/71130
|
135690 |
24-Sep-2004 |
peter |
Converge towards i386. I originally resisted creating <machine/pc/bios.h> because it was mostly irrelevant - except for the silly BIOS_PADDRTOVADDR etc macros. Along the way of working around this, I missed a few things.
* Make syscons properly inherit the bios capslock/shiftlock/etc state like i386 does. Note that we cannot inherit the bios key repeat rate because that requires a bios call (which is impossible for us). * Give syscons the ability to beep on amd64. Oops.
While here, make bios.c compile and add it to files.amd64.
|
133227 |
06-Aug-2004 |
des |
While we're revisiting old sins, try to clean up the code a little and make it more style(9)ish.
|
132199 |
15-Jul-2004 |
phk |
Do a pass over all modules in the kernel and make them return EOPNOTSUPP for unknown events.
A number of modules return EINVAL in this instance, and I have left those alone for now and instead taught MOD_QUIESCE to accept this as "didn't do anything".
|
131887 |
09-Jul-2004 |
marius |
- Add missing <sys/module.h>. [1] - Remove unused includes. - Sort includes.
Reported by: Pyun YongHyeon <yongari@kt-is.co.kr> [1]
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130312 |
10-Jun-2004 |
jhb |
Remove atdevbase and replace it's remaining uses with direct references to KERNBASE instead.
|
130026 |
03-Jun-2004 |
phk |
Add missing <sys/module.h> includes currently relying on nested include in <sys/kernel.h>
|
129880 |
30-May-2004 |
phk |
add missing #include <sys/module.h>
|
129879 |
30-May-2004 |
phk |
Add missing <sys/module.h> includes
|
128019 |
07-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson.
Approved by: core, peter, alc, rwatson
|
127838 |
04-Apr-2004 |
tmm |
- Use an ihandle_t to store the stdout instance handle instead of a phandle_t. Since both are typedefed to unsigned int, this is more or less cosmetic. - Fix the code that determines whether a creator instance was used for firmware output (and should not be blanked on initialization). Since r1.2 of dev/fb/creator.c, this consisted comparing a handle of an instance of a package with a handle of the package itself. Use the test from r1.1, which utilizes OF_instance_to_package().
Submitted by: Marius Strobl <marius@alchemy.franken.de>
|
127792 |
03-Apr-2004 |
nectar |
Correct a potential panic condition that could be caused when getting or setting the VGA palette.
Reported by: Christer Öberg <christer.oberg@texonet.com> Reviewed by: bde
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
126080 |
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
126076 |
21-Feb-2004 |
phk |
Device megapatch 1/6:
Free approx 86 major numbers with a mostly automatically generated patch.
A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
|
124770 |
21-Jan-2004 |
grehan |
__powerpc__ conditional code for the syscons OpenFirmware/PPC framebuffer. Took the opportunity to reduce
__i386__ || __ia64__ || __amd64__ || __sparc64__ || __powerpc__
to
!__alpha__
reviewed by: gallatin
|
124072 |
02-Jan-2004 |
obrien |
Don't confuse NULL with 0.
|
122471 |
11-Nov-2003 |
jake |
Fix a typo. Allow for the creator not being stdout.
|
120465 |
26-Sep-2003 |
phk |
Change fb_attach() and fb_detach() to take a integer unit number rather than a dev_t.
All of the dev_t's passed were bogusly created with makedev()
|
119418 |
24-Aug-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
119384 |
24-Aug-2003 |
jake |
Changed ??? to foo in dead code since ??? screws up my editor.
|
119381 |
24-Aug-2003 |
jake |
Add a driver for creator upa frame buffers found in many sparc64 machines. These are fixed resolution and operate only in pixel mode so they present a challenge to syscons (square peg, round hole, etc, etc). The driver provides a video driver interface for syscons and a separate character device for X to mmap. Wherever possible the creator's accelarated graphics functions are used so text mode is very fast.
Based roughly on the openbsd driver.
|
119359 |
23-Aug-2003 |
marcel |
o Explicitly cast the second argument to bus_space_set_region_#() to intptr_t. This fixes a compiler warning (integer from pointer without cast) in scvgarndr.c when SC_PIXEL_MODE is defined. o Define readb() and writeb(). Both are used in scvgarndr.c when, guess what, SC_PIXEL_MODE is defined.
Both changes are ia64 specific.
Found by: LINT
|
119277 |
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
115253 |
23-May-2003 |
peter |
Low risk amd64 fix. Use a vm_offset_t for the virtual location of the buffer space instead of a u_int32_t. Otherwise the upper 32 bits of the address space get truncated and syscons blows up.
Approved by: re (safe, low risk amd64 fixes)
|
114485 |
02-May-2003 |
marcel |
Unbreak alpha and ia64 builds. The previous change made the inclusion of <machine/pc/bios.h> specific to i386 and added a conditional define for BIOS_PADDRTOVADDR that depends on ISA_HOLE_START. The latter is undefined on alpha and ia64. Since the former is defined the same on both alpha and ia64, assume the ISA_HOLE_START dependent definition is specific to amd64 and use the identity-mapping in all other cases.
This of course is getting uglier every day...
|
114383 |
01-May-2003 |
peter |
Add AMD64 support to dev/fb. It isn't optimized.
|
114199 |
29-Apr-2003 |
marcel |
Keep syscons specific I/O functions internal/specific to syscons on ia64 by defining them in terms of newbus. Add a static inline for fillw(), which doesn't have anything to do with I/O. It's still ugly, but now the ugliness can be removed from ia64 specific headers.
|
112569 |
25-Mar-2003 |
jake |
- Add vm_paddr_t, a physical address type. This is required for systems where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
|
112367 |
18-Mar-2003 |
phk |
Including <sys/stdint.h> is (almost?) universally only to be able to use %j in printfs, so put a newsted include in <sys/systm.h> where the printf prototype lives and save everybody else the trouble.
|
111815 |
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
111576 |
26-Feb-2003 |
phk |
NODEVFS cleanup:
Don't call cdevsw_{add,remove}() Bracket a more correct subset in "#if experimental"
|
111462 |
25-Feb-2003 |
mux |
Cleanup of the d_mmap_t interface.
- Get rid of the useless atop() / pmap_phys_address() detour. The device mmap handlers must now give back the physical address without atop()'ing it. - Don't borrow the physical address of the mapping in the returned int. Now we properly pass a vm_offset_t * and expect it to be filled by the mmap handler when the mapping was successful. The mmap handler must now return 0 when successful, any other value is considered as an error. Previously, returning -1 was the only way to fail. This change thus accidentally fixes some devices which were bogusly returning errno constants which would have been considered as addresses by the device pager. - Garbage collect the poorly named pmap_phys_address() now that it's no longer used. - Convert all the d_mmap_t consumers to the new API.
I'm still not sure wheter we need a __FreeBSD_version bump for this, since and we didn't guarantee API/ABI stability until 5.1-RELEASE.
Discussed with: alc, phk, jake Reviewed by: peter Compile-tested on: LINT (i386), GENERIC (alpha and sparc64) Runtime-tested on: i386
|
111119 |
19-Feb-2003 |
imp |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
109623 |
21-Jan-2003 |
alfred |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
106766 |
11-Nov-2002 |
mux |
Warning fixes.
|
106765 |
11-Nov-2002 |
mux |
Warning fix.
|
106662 |
08-Nov-2002 |
jhb |
Fix printf warnings with %j and uintmax_t.
|
104389 |
02-Oct-2002 |
phk |
Fix rare and probably inconsequential memory leak.
Spotted by: FlexeLint
|
103870 |
23-Sep-2002 |
alfred |
use __packed.
|
102412 |
25-Aug-2002 |
charnier |
Replace various spelling with FALLTHROUGH which is lint()able
|
94617 |
13-Apr-2002 |
obrien |
Turn on TGA support.
Submitted by: Andrew M. Miklic <AndrwMklc@cs.com>
|
94275 |
09-Apr-2002 |
phk |
GC various bits and pieces of USERCONFIG from all over the place.
|
87599 |
10-Dec-2001 |
obrien |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
86119 |
06-Nov-2001 |
des |
syscons' set_border() is now named sc_set_border(), so there is no longer a naming conflict.
|
85810 |
01-Nov-2001 |
obrien |
Add the TGA video driver. This is a great accomplishtment and will help us a lot on older Alphas. Andrew Gallatin, Thomas V. Crimi, and Peter Jeremy contributed to this work along with the submitter.
Submitted by: Andrew M. Miklic <miklic@home.com>
|
84580 |
06-Oct-2001 |
marcel |
Make this compile on ia64.
|
83366 |
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
81455 |
10-Aug-2001 |
yokota |
Fix missing splx().
|
81051 |
02-Aug-2001 |
yokota |
Include opt_splash.h.
|
81039 |
02-Aug-2001 |
yokota |
Add FBIO_BLANK ioctl support. Return ENODEV for yet-to-be- supported ioctls for now.
|
81038 |
02-Aug-2001 |
yokota |
Add some definitions. Their actual support will be added to video drivers later.
|
80203 |
23-Jul-2001 |
kris |
s/adress/address/
Inspired by: OpenBSD MFC After: 1 week
|
78161 |
13-Jun-2001 |
peter |
With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation.
The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it).
The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *.
For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's.
For a.out, we use the old linker_set struct.
NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas.
The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use.
linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day.
Reviewed by: eivind
|
74810 |
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
73857 |
06-Mar-2001 |
jhb |
#if 0 out a variable only used in #if 0'd code to quiet a warning.
|
71862 |
31-Jan-2001 |
peter |
Exterminate the use of PSEUDO_SET() with extreme prejudice.
|
71465 |
23-Jan-2001 |
jhb |
#if 0 out local variables only used in #if 0'd code and remove unused local variables.
|
70688 |
05-Jan-2001 |
nsouch |
Add the VESA S3 linear framebuffer driver. It works on top of VESA by replacing the video switch by another. Exactly as VESA does on top of VGA.
It adds linear framebuffer to S3 VESA 1.2 cards.
Obtained from: The original S3 ISA code comes from Peter Horton <pdh@colonel-panic.com>
|
69781 |
08-Dec-2000 |
dwmalone |
Convert more malloc+bzero to malloc+M_ZERO.
Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
|
68050 |
31-Oct-2000 |
nyan |
Disabled EGA/VGA 1bpp/4bpp modes support. This is not real fix, but this comes back to support 8bpp mode.
|
67882 |
29-Oct-2000 |
phk |
Remove unneeded #include <sys/proc.h> lines.
|
67784 |
28-Oct-2000 |
nyan |
Removed extra calculation for X position (PC-98 only).
Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)
|
65176 |
28-Aug-2000 |
dfr |
* Completely rewrite the alpha busspace to hide the implementation from the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly.
With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
|
61471 |
10-Jun-2000 |
peter |
Unused include: #include "fb.h"
|
60742 |
21-May-2000 |
gallatin |
Prevent vidcontrol -i from crashing alphas
Reported by: Christian Weisgerber <naddy@mips.inka.de> Approved by: yokota@FreeBSD.ORG
|
59764 |
29-Apr-2000 |
phk |
Peter and I cross-committed: this file needs sys/kernel.h now.
|
59760 |
29-Apr-2000 |
phk |
Remove unneeded #include <sys/kernel.h>
|
59754 |
29-Apr-2000 |
peter |
Stick a module dependency on 'splash' in the saver declaration macro so that all savers are automatically declared dependent on the splash driver.
|
59690 |
27-Apr-2000 |
nyan |
Added PC-98 supports.
Submitted by: Chiharu Shibata <chi@bd.mbn.or.jp>, Tomokazu HARADA <tkhara@osk4.3web.ne.jp> and yokota
|
59583 |
24-Apr-2000 |
yokota |
- Added support for 1bpp and 4bpp BMP files. (PC98 part of the commit will follow.)
Submitted (50%) by: Chiharu Shibata <chi@bd.mbn.or.jp>
|
56832 |
29-Jan-2000 |
peter |
Remove #include "vga.h" and #if NVGA > 0 as it's implied by config.
|
56831 |
29-Jan-2000 |
peter |
Remove #include "splash.h" and #if NSPLASH > 0" - it's implied by config.
|
56522 |
24-Jan-2000 |
dfr |
Add a workaround to which allows alphas to reserve a port range which doesn't conflict with the parallel port on my miata (0x3bc..0x3bf). The right solution will be to reserve two port ranges in vga, 0x3b0..0x3ba and 0x3c0..0x3ca.
Reviewed by: yokota
|
55729 |
10-Jan-2000 |
yokota |
Rework the algorithm to detect MDA/CGA/EGA/VGA cards, so that the vga driver won't be fooled to believe it has a CGA card when in fact it is a VGA card.
|
55727 |
10-Jan-2000 |
yokota |
- Fix typo: CGA40 -> CGA80 - Remove erroneous comments.
|
55205 |
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
54258 |
07-Dec-1999 |
yokota |
Fix the ioctl CONS_FINDMODE and its underlying subroutine xxx_query_mode() in the vga and vesa drivers.
- xxx_query_mode() returns 0 (success) and a positive error number. - Copy mode information on success. - Remove redundant structure copy.
The bug first found in -STABLE by jmg.
|
51954 |
05-Oct-1999 |
n_hibma |
Check whether init and term are actually given
|
51658 |
25-Sep-1999 |
phk |
Remove five now unused fields from struct cdevsw. They should never have been there in the first place. A GENERIC kernel shrinks almost 1k.
Add a slightly different safetybelt under nostop for tty drivers.
Add some missing FreeBSD tags
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
50299 |
24-Aug-1999 |
yokota |
Correct the mode information for the VGA mode X. - This mode uses four planes rather than one. - "# of bytes in a scan line" = "# of pixels in the line"/2
|
50254 |
23-Aug-1999 |
phk |
Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.
Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)
Add the correct hook for devfs to kern_conf.c
The net result of this excercise is that a lot less files depends on DEVFS, and devtoname() gets more sensible output in many cases.
A few drivers had minor additional cleanups performed relating to cdevsw registration.
A few drivers don't register a cdevsw{} anymore, but only use make_dev().
|
48557 |
04-Jul-1999 |
phk |
Remove cmaj and bmaj args from DEV_DRIVER_MODULE.
|
48412 |
01-Jul-1999 |
peter |
Fix printf int/long format problems on the Alpha.
|
48323 |
28-Jun-1999 |
des |
Use the correct value for banksize so splash_pcx works in LFB modes.
|
48238 |
26-Jun-1999 |
peter |
#if 0 an unused function since it generates warnings.. (I have not deleted it in case it's part of a bigger plan.)
|
48104 |
22-Jun-1999 |
yokota |
The second phase of syscons reorganization.
- Split syscons source code into manageable chunks and reorganize some of complicated functions.
- Many static variables are moved to the softc structure.
- Added a new key function, PREV. When this key is pressed, the vty immediately before the current vty will become foreground. Analogue to PREV, which is usually assigned to the PrntScrn key. PR: kern/10113 Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
- Modified the kernel console input function sccngetc() so that it handles function keys properly.
- Reorganized the screen update routine.
- VT switching code is reorganized. It now should be slightly more robust than before.
- Added the DEVICE_RESUME function so that syscons no longer hooks the APM resume event directly.
- New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING, SC_NO_HISTORY and SC_NO_SYSMOUSE. Various parts of syscons can be omitted so that the kernel size is reduced.
SC_PIXEL_MODE Made the VESA 800x600 mode an option, rather than a standard part of syscons.
SC_DISABLE_DDBKEY Disables the `debug' key combination.
SC_ALT_MOUSE_IMAGE Inverse the character cell at the mouse cursor position in the text console, rather than drawing an arrow on the screen. Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG)
SC_DFLT_FONT makeoptions "SC_DFLT_FONT=_font_name_" Include the named font as the default font of syscons. 16-line, 14-line and 8-line font data will be compiled in. This option replaces the existing STD8X16FONT option, which loads 16-line font data only.
- The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c.
- The video driver provides a set of ioctl commands to manipulate the frame buffer.
- New kernel configuration option: VGA_WIDTH90 Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These modes are mot always supported by the video card. PR: i386/7510 Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx.
- The header file machine/console.h is reorganized; its contents is now split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h (another new file). machine/console.h is still maintained for compatibility reasons.
- Kernel console selection/installation routines are fixed and slightly rebumped so that it should now be possible to switch between the interanl kernel console (sc or vt) and a remote kernel console (sio) again, as it was in 2.x, 3.0 and 3.1.
- Screen savers and splash screen decoders Because of the header file reorganization described above, screen savers and splash screen decoders are slightly modified. After this update, /sys/modules/syscons/saver.h is no longer necessary and is removed.
|
47945 |
16-Jun-1999 |
yokota |
Print verbose messages when there is error. Oked by: des
|
47640 |
31-May-1999 |
phk |
Simplify cdevsw registration.
The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing.
cdevsw_add() will print an message if the d_maj field looks bogus.
Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL.
Move bdevsw() and devsw() functions to kern/kern_conf.c
Bump __FreeBSD_version to 400006
This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions
if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.
I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up.
|
47625 |
30-May-1999 |
phk |
This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".
Initialize the d_maj and d_bmaj fields.
The d_reset field was not removed, although it is never used.
I used a program to do most of this, so all the files now use the same consistent format. Please keep it that way.
Vinum and i4b not modified, patches emailed to respective authors.
|
45617 |
12-Apr-1999 |
des |
PCX loader for pseudo-device splash.
|
45616 |
12-Apr-1999 |
des |
Centralize and reorganize a few macros.
|
45119 |
29-Mar-1999 |
yokota |
Make the splash screen alternate "fade out" and "fade in" action at regular intervals, when the module is used as a screen saver.
Submitted by: asami
|
44604 |
09-Mar-1999 |
yokota |
Don't free() a NULL pointer!
|
43664 |
05-Feb-1999 |
yokota |
- Don't assume the line length in the video memory is always the same as the screen width. - Store the current video mode information in the `video_adapter' struct. - The size of the `v_offscreensize' field in the VESA mode information block is u_int16, not u_int8.
|
43229 |
26-Jan-1999 |
yokota |
Oops, one line was accidentally commented out in the previous commit.
|
42998 |
21-Jan-1999 |
yokota |
Add VESA mode support. If the VESA support is compiled into the kernel or the VESA KLD is preloaded by the boot loader, you can load a 256 color BMP file larger than 320x200.
|
42831 |
19-Jan-1999 |
yokota |
syscons - Bring down the splash screen when a vty is opened for the first time. - Make sure the splash screen/screen saver is stopped before switching vtys. - Read and save initial values in the BIOS data area early. VESA BIOS may change BIOS data values when switching modes. - Fix missing '&' operator. - Move ISA specific part of driver initialization to syscons_isa.c.
atkbd - kbdtables.h is now in /sys/dev/kbd.
all - Adjust for forthcoming alpha port. Submitted by: dfr
|
42623 |
13-Jan-1999 |
yokota |
Calculate the number of bitmap colors in the correct way.
The bug found by: Kevin Street <street@iname.com>
|
42564 |
12-Jan-1999 |
yokota |
Clean up warnings: get conditional compilation right so that a local function won't be defined unless it is actually used. Requested by: eivind
|
42529 |
11-Jan-1999 |
yokota |
Update the pointer into the bitmap correctly. The previous code had the pointer off by 4 bytes if the width of the bitmap is a multiple of four.
|
42506 |
11-Jan-1999 |
yokota |
Add splash screen module. This version has rather limited capabilities, but should be a good start... Well, sort of.
It can handle W*ndows 256 color BMP file. (Other color depth probably won't work.) The size of the image must be 320x200 or less. *sigh*
|
42503 |
11-Jan-1999 |
yokota |
Oops, I committed wrong version of these files in the last commit! Here are the correct, and up-top-date ones.
|
42421 |
09-Jan-1999 |
yokota |
Add the new keyboard driver and video card driver. They will be used by console drivers.
(They are not yet activated yet. Wait for announcement later.)
|