303975 |
11-Aug-2016 |
gjb |
Copy stable/11@r303970 to releng/11.0 as part of the 11.0-RELEASE cycle.
Prune svn:mergeinfo from the new branch, and rename it to RC1.
Update __FreeBSD_version.
Use the quarterly branch for the default FreeBSD.conf pkg(8) repo and the dvd1.iso packages population.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
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
|
297199 |
22-Mar-2016 |
jhibbits |
Fix the resource_list_print_type() calls to use uintmax_t.
Missed a bunch from r297000.
|
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
|
295673 |
16-Feb-2016 |
jhibbits |
Another conversion u_long -> rman_res_t
|
294989 |
28-Jan-2016 |
mmel |
EHCI: Make core reset and port speed reading more generic.
Use driver settable callbacks for handling of: - core post reset - reading actual port speed
Typically, OTG enabled EHCI cores wants setting of USBMODE register, but this register is not defined in EHCI specification and different cores can have it on different offset.
Also, for cores with TT extension, actual port speed must be determinable. But again, EHCI specification not covers this so this patch provides function for two most common variant of speed bits layout.
Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D5088
|
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.
|
279252 |
24-Feb-2015 |
nwhitehorn |
New pmap implementation for 64-bit PowerPC processors. The main focus of this change is to improve concurrency: - Drop global state stored in the shadow overflow page table (and all other global state) - Remove all global locks - Use per-PTE lock bits to allow parallel page insertion - Reconstruct state when requested for evicted PTEs instead of buffering it during overflow
This drops total wall time for make buildworld on a 32-thread POWER8 system by a factor of two and system time by a factor of three, providing performance 20% better than similarly clocked Core i7 Xeons per-core. Performance on smaller SMP systems, where PMAP lock contention was not as much of an issue, is nearly unchanged.
Tested on: POWER8, POWER5+, G5 UP, G5 SMP (64-bit and 32-bit kernels) Merged from: user/nwhitehorn/ppc64-pmap-rework Looked over by: jhibbits, andreast MFC after: 3 months Relnotes: yes Sponsored by: FreeBSD Foundation
|
279136 |
22-Feb-2015 |
nwhitehorn |
Allow use of higher-resolution (e.g. 1920x1080) framebuffers on PS3.
MFC after: 1 month
|
276717 |
05-Jan-2015 |
hselasky |
Add 64-bit DMA support in the XHCI controller driver. - Fix some comments and whitespace while at it.
MFC after: 1 month Submitted by: marius@
|
276680 |
05-Jan-2015 |
nwhitehorn |
Use FDT properties to identify a PS3 if present.
|
276679 |
05-Jan-2015 |
nwhitehorn |
Make PS3 work with the userspace kboot loader. loader.ps3 will disappear from the tree in the near future.
Done at: Hackathon
|
271860 |
19-Sep-2014 |
glebius |
Mechanically convert to if_inc_counter().
|
271684 |
16-Sep-2014 |
dumbbell |
vt(4): Use vt_fb_drawrect() and vt_fb_setpixel() in all vt_fb-derivative
Review: https://reviews.freebsd.org/D789 Reviewed by: nwhitehorn Approved by: nwhitehorn MFC after: 2 days
|
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
|
270411 |
23-Aug-2014 |
dumbbell |
vt_fb: Implement vd_bitblt_text_t for vt_fb and derivatives
MFC after: 1 week
|
269791 |
10-Aug-2014 |
dumbbell |
Fix two files forgotten in r269783 (vt_generate_cons_palette)
Reported by: bz MFC after: 1 week MFC with: 269783
|
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().
|
268898 |
20-Jul-2014 |
nwhitehorn |
Fix allocation of 128MB extended memory region, broken since some careless modifications in December.
MFC after: 3 days
|
268895 |
19-Jul-2014 |
nwhitehorn |
Enable X11 via xf86-video-scfb on the Playstation 3. This commit made from an xterm running for the first time on said Playstation.
|
265900 |
12-May-2014 |
nwhitehorn |
Repair some races in IPI handling: 1. Make sure IPI mask is set before sending the IPI 2. Operate atomically on PS3 PIC outstanding interrupt list 3. Make sure IPIs are EOI'ed before, not after, processing. Without this, a second IPI could be sent partway through processing the first one, get erroneously acknowledge by the EOI to the first, and be lost. In particular in the case of smp_rendezvous(), this can be fatal.
In combination, this makes the PS3 boot SMP again. It probably also fixes some latent bugs elsewhere.
MFC after: 2 weeks
|
265883 |
11-May-2014 |
nwhitehorn |
Fix interrupt allocation after changes to nexus. This makes PS3 boot multiuser again (this commit comes from the PS3 itself). Some problems still exist with SMP, apparently, as I had to boot a non-SMP kernel to get here.
|
265871 |
11-May-2014 |
nwhitehorn |
Move the PS3 framebuffer console to use vt instead of syscons and adjust GENERIC64 for PowerPC to use vt with it.
Much to my chagrin, PS3 support seems to have bitrotted somewhat since the last time I tried it. ehci panics on attach and interrupt handling seems to be faulty. This should be fixed soon...
|
258807 |
01-Dec-2013 |
nwhitehorn |
Rearchitect platform memory map parsing to make it less Open Firmware-centric: - Keep the static list of regions in platform.c instead of ofw_machdep.c - Move various merging and sorting operations to platform.c as well - Move apple_hacks code out of ofw_machdep.c and into platform_powermac.c, where it belongs - Move CHRP-specific dynamic-reconfiguration memory parsing into platform_chrp.c instead of pretending it is shared code
|
257324 |
29-Oct-2013 |
glebius |
- Provide necessary includes. - Remove unnecessary includes.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
255943 |
29-Sep-2013 |
nwhitehorn |
Changes to CAM or busdma have caused SIMs to be sent 0-length CCBs on occasion. This resulted in zero mapped segments, triggering an assert in the PS3 CDROM driver. Allow no DMA for 0-length transfers.
Approved by: re (glebius) MFC after: 1 week
|
247454 |
28-Feb-2013 |
davide |
MFcalloutng: When CPU becomes idle, cpu_idleclock() calculates time to the next timer event in order to reprogram hw timer. Return that time in sbintime_t to the caller and pass it to acpi_cpu_idle(), where it can be used as one more factor (quite precise) to extimate furter sleep time and choose optimal sleep state. This is a preparatory change for further callout improvements will be committed in the next days.
The commmit is not targeted for MFC.
|
247297 |
26-Feb-2013 |
attilio |
Merge from vmobj-rwlock branch: Remove unused inclusion of vm/vm_pager.h and vm/vnode_pager.h.
Sponsored by: EMC / Isilon storage division Tested by: pho Reviewed by: alc
|
246732 |
13-Feb-2013 |
rpaulo |
Introduce PLATFORMMETHOD_END and use it.
|
246713 |
12-Feb-2013 |
kib |
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback.
The cam changes unify the bus_dmamap_load* handling in cam drivers.
The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map.
Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
|
243882 |
05-Dec-2012 |
glebius |
Mechanically substitute flags from historic mbuf allocator with malloc(9) flags within sys.
Exceptions:
- sys/contrib not touched - sys/mbuf.h edited manually
|
232356 |
01-Mar-2012 |
jhb |
- Change contigmalloc() to use the vm_paddr_t type instead of an unsigned long for specifying a boundary constraint. - Change bus_dma tags to use bus_addr_t instead of bus_size_t for boundary constraints.
These allow boundary constraints to be fully expressed for cases where sizeof(bus_addr_t) != sizeof(bus_size_t). Specifically, it allows a driver to properly specify a 4GB boundary in a PAE kernel.
Note that this cannot be safely MFC'd without a lot of compat shims due to KBI changes, so I do not intend to merge it.
Reviewed by: scottl
|
230992 |
04-Feb-2012 |
nwhitehorn |
Avoid warnings about duplicate modules.
MFC after: 2 weeks
|
230144 |
15-Jan-2012 |
nwhitehorn |
Pick a constant high IRQ value for the PS3 IPI, which lets PS3 devices be usefully loaded and unloaded as modules.
Submitted by: geoffrey dot levand at mail dot ru MFC after: 2 weeks
|
230139 |
15-Jan-2012 |
nwhitehorn |
Now that we can tolerate LPAR context switches on the PS3 hypervisor, going to hypervisor-idle on both threads will not hang the kernel.
|
228689 |
18-Dec-2011 |
nwhitehorn |
Support infrastructure for X11 on PS3.
Submitted by: geoffrey dot levand at mail dot ru MFC after: 1 week
|
228688 |
18-Dec-2011 |
nwhitehorn |
Add version header to output file.
|
228483 |
14-Dec-2011 |
hselasky |
Implement better support for USB controller suspend and resume.
This patch should remove the need for kldunload of USB controller drivers at suspend and kldload of USB controller drivers at resume.
This patch also fixes some build issues in avr32dci.c
MFC after: 2 weeks
|
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.
|
227779 |
21-Nov-2011 |
nwhitehorn |
The PPC IRQ layer assumes that the IPI IRQ is the last IRQ on the PIC. This assumption is invalid and the code should be fixed, but humor it for now and set the "IPI" for PS3s in the non-SMP case to a large number. This fixes boot with a non-SMP kernel.
Submitted by: geoffrey dot levand at mail dot ru MFC after: 1 week
|
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.
|
225950 |
03-Oct-2011 |
ken |
Add descriptor sense support to CAM, and honor sense residuals properly in CAM.
Desriptor sense is a new sense data format that originated in SPC-3. Among other things, it allows for an 8-byte info field, which is necessary to pass back block numbers larger than 4 bytes.
This change adds a number of new functions to scsi_all.c (and therefore libcam) that abstract out most access to sense data.
This includes a bump of CAM_VERSION, because the CCB ABI has changed. Userland programs that use the CAM pass(4) driver will need to be recompiled.
camcontrol.c: Change uses of scsi_extract_sense() to use scsi_extract_sense_len().
Use scsi_get_sks() instead of accessing sense key specific data directly.
scsi_modes: Update the control mode page to the latest version (SPC-4).
scsi_cmds.c, scsi_target.c: Change references to struct scsi_sense_data to struct scsi_sense_data_fixed. This should be changed to allow the user to specify fixed or descriptor sense, and then use scsi_set_sense_data() to build the sense data.
ps3cdrom.c: Use scsi_set_sense_data() instead of setting sense data manually.
cam_periph.c: Use scsi_extract_sense_len() instead of using scsi_extract_sense() or accessing sense data directly.
cam_ccb.h: Bump the CAM_VERSION from 0x15 to 0x16. The change of struct scsi_sense_data from 32 to 252 bytes changes the size of struct ccb_scsiio, but not the size of union ccb. So the version must be bumped to prevent structure mis-matches.
scsi_all.h: Lots of updated SCSI sense data and other structures.
Add function prototypes for the new sense data functions.
Take out the inline implementation of scsi_extract_sense(). It is now too large to put in a header file.
Add macros to calculate whether fields are present and filled in fixed and descriptor sense data
scsi_all.c: In scsi_op_desc(), allow the user to pass in NULL inquiry data, and we'll assume a direct access device in that case.
Changed the SCSI RESERVED sense key name and description to COMPLETED, as it is now defined in the spec.
Change the error recovery action for a number of read errors to prevent lots of retries when the drive has said that the block isn't accessible. This speeds up reconstruction of the block by any RAID software running on top of the drive (e.g. ZFS).
In scsi_sense_desc(), allow for invalid sense key numbers. This allows calling this routine without checking the input values first.
Change scsi_error_action() to use scsi_extract_sense_len(), and handle things when invalid asc/ascq values are encountered.
Add a new routine, scsi_desc_iterate(), that will call the supplied function for every descriptor in descriptor format sense data.
Add scsi_set_sense_data(), and scsi_set_sense_data_va(), which build descriptor and fixed format sense data. They currently default to fixed format sense data.
Add a number of scsi_get_*() functions, which get different types of sense data fields from either fixed or descriptor format sense data, if the data is present.
Add a number of scsi_*_sbuf() functions, which print formatted versions of various sense data fields. These functions work for either fixed or descriptor sense.
Add a number of scsi_sense_*_sbuf() functions, which have a standard calling interface and print the indicated field. These functions take descriptors only.
Add scsi_sense_desc_sbuf(), which will print a formatted version of the given sense descriptor.
Pull out a majority of the scsi_sense_sbuf() function and put it into scsi_sense_only_sbuf(). This allows callers that don't use struct ccb_scsiio to easily utilize the printing routines. Revamp that function to handle descriptor sense and use the new sense fetching and printing routines.
Move scsi_extract_sense() into scsi_all.c, and implement it in terms of the new function, scsi_extract_sense_len(). The _len() version takes a length (which should be the sense length - residual) and can indicate which fields are present and valid in the sense data.
Add a couple of new scsi_get_*() routines to get the sense key, asc, and ascq only.
mly.c: Rename struct scsi_sense_data to struct scsi_sense_data_fixed.
sbp_targ.c: Use the new sense fetching routines to get sense data instead of accessing it directly.
sbp.c: Change the firewire/SCSI sense data transformation code to use struct scsi_sense_data_fixed instead of struct scsi_sense_data. This should be changed later to use scsi_set_sense_data().
ciss.c: Calculate the sense residual properly. Use scsi_get_sense_key() to fetch the sense key.
mps_sas.c, mpt_cam.c: Set the sense residual properly.
iir.c: Use scsi_set_sense_data() instead of building sense data by hand.
iscsi_subr.c: Use scsi_extract_sense_len() instead of grabbing sense data directly.
umass.c: Use scsi_set_sense_data() to build sense data.
Grab the sense key using scsi_get_sense_key().
Calculate the sense residual properly.
isp_freebsd.h: Use scsi_get_*() routines to grab asc, ascq, and sense key values.
Calculate and set the sense residual.
MFC after: 3 days Sponsored by: Spectra Logic Corporation
|
224857 |
14-Aug-2011 |
nwhitehorn |
Add support for the Blu-Ray drive found in the Sony Playstation 3 and fix some realted minor bugs in PS3 internal storage support.
Submitted by: glevand <geoffrey.levand@mail.ru> Approved by: re (bz)
|
223792 |
05-Jul-2011 |
nwhitehorn |
Follow Linux by unconditionally stripping the RX vlan tag from incoming packets. It turns out that all firmware versions insert it, whether or not they support VLAN tagging.
Submitted by: glevand <geoffrey.levand at mail dot ru>
|
223463 |
23-Jun-2011 |
nwhitehorn |
Use atomic operations to mask and unmask IRQs. This prevents a problem (obvious in retrospect) in which interrupts on one CPU that are temporarily masked can end up permanently masked when a handler on another CPU clobbers the interrupt mask register with an old copy.
|
223462 |
23-Jun-2011 |
nwhitehorn |
Use 4 KB pages for storage bus devices, which seems to be what the HV uses internally.
|
223461 |
23-Jun-2011 |
nwhitehorn |
Rework the PS3 disk driver to support NCQ and do its DMA a little differently.
|
223460 |
23-Jun-2011 |
nwhitehorn |
Add hypervisor call error codes.
|
223406 |
22-Jun-2011 |
nwhitehorn |
This is more complicated than I expected. Storage devices need the IOMMU set up, but must not use it.
|
223404 |
22-Jun-2011 |
nwhitehorn |
The IOMMU is not involved for the storage bus.
|
223324 |
20-Jun-2011 |
nwhitehorn |
Work/hack around some race conditions present in the hardware/HV interface. Partially inspired by a patch from glevand (geoffrey.levand@mail.ru).
|
223316 |
20-Jun-2011 |
nwhitehorn |
Make this slightly less yelly about regions that the hypervisor protects from us by not registering them as disks.
|
223314 |
20-Jun-2011 |
nwhitehorn |
Add an OHCI driver to complement the EHCI one. The infrastructure to attach both to the parent ps3bus was in r223313. This driver itself comes from the ps3 project branch.
|
223313 |
20-Jun-2011 |
nwhitehorn |
Driver for PS3's internal hard disk. Hopefully this can be CAM-ified in the future, but presents a set of simple block devices for now. With (forthcoming) boot loader support or vfs.root.mountfrom, allows booting PS3s from disk.
Submitted by: glevand <geoffrey.levand@mail.ru>
|
222239 |
24-May-2011 |
nwhitehorn |
Add RTC support for the LV1 clock on the PS3. The hypervisor won't let us set it, but it's better than nothing.
|
218075 |
29-Jan-2011 |
marcel |
Fix the interrupt code, broken 7 months ago. The interrupt framework already supported nested PICs, but was limited to having a nested AT-PIC only. With G5 support the need for nested OpenPIC controllers needed to be added. This was done the wrong way and broke the MPC8555 eval system in the process.
OFW, as well as FDT, describe the interrupt routing in terms of a controller and an interrupt pin on it. This needs to be mapped to a flat and global resource: the IRQ. The IRQ is the same as the PCI intline and as such needs to be representable in 8 bits. Secondly, ISA support pretty much dictates that IRQ 0-15 should be reserved for ISA interrupts, because of the internal workins of south bridges. Both were broken.
This change reverts revision 209298 for a big part and re-implements it simpler. In particular: o The id() method of the PIC I/F is removed again. It's not needed. o The openpic_attach() function has been changed to take the OFW or FDT phandle of the controller as a second argument. All bus attachments that previously used openpic_attach() as the attach method of the device I/F now implement as bus-specific method and pass the phandle_t to the renamed openpic_attach(). o Change powerpc_register_pic() to take a few more arguments. In particular: - Pass the number of IPIs specificly. The number of IRQs carved out for a PIC is the sum of the number of int. pins and IPIs. - Pass a flag indicating whether the PIC is an AT-PIC or not. This tells the interrupt framework whether to assign IRQ 0-15 or some other range. o Until we implement proper multi-pass bus enumeration, we have to handle the case where we need to map from PIC+pin to IRQ *before* the PIC gets registered. This is done in a similar way as before, but rather than carving out 256 IRQs per PIC, we carve out 128 IRQs (124 pins + 4 IPIs). This is supposed to handle the G5 case, but should really be fixed properly using multiple passes. o Have the interrupt framework set root_pic in most cases and not put that burden in PIC drivers (for the most part). o Remove powerpc_ign_lookup() and replace it with powerpc_get_irq(). Remove IGN_SHIFT, INTR_INTLINE and INTR_IGN.
Related to the above, fix the Freescale PCI controller driver, broken by the FDT code. Besides not attaching properly, bus numbers were assigned improperly and enumeration was broken in general. This prevented the AT PIC from being discovered and interrupt routing to work properly. Consequently, the ata(4) controller stopped functioning.
Fix the driver, and FDT PCI support, enough to get the MPC8555CDS going again. The FDT PCI code needs a whole lot more work.
No breakages are expected, but lackiong G5 hardware, it's possible that there are unpleasant side-effects. At least MPC85xx support is back to where it was 7 months ago -- it's amazing how badly support can be broken in just 7 months...
Sponsored by: Juniper Networks
|
217265 |
11-Jan-2011 |
jhb |
Remove unneeded includes of <sys/linker_set.h>. Other headers that use it internally contain nested includes.
Reviewed by: bde
|
217044 |
06-Jan-2011 |
nwhitehorn |
Import support for the Sony Playstation 3 using the OtherOS feature available on firmwares 3.15 and earlier.
Caveats: Support for the internal SATA controller is currently missing, as is support for framebuffer resolutions other than 720x480. These deficiencies will be remedied soon.
Special thanks to Peter Grehan for providing the hardware that made this port possible, and thanks to Geoff Levand of Sony Computer Entertainment for advice on the LV1 hypervisor.
|