272461 |
03-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
269795 |
11-Aug-2014 |
ian |
MFC r269341: Populate disk->d_ident with the sd or mmc card's serial number.
|
266200 |
15-May-2014 |
ian |
MFC r261938, r261939, r261940, r261944, r261945, r261946, r261947, r261956, r261957, r261983, r261094, r261955, r261958,
Add a driver to provide access to imx6 on-chip one-time-programmble data.
Make it possible to access the ocotp registers before the ocotp device is attached, by establishing a temporary mapping of the registers when necessary.
It turns out Freescale cleverly made the ocotp device compatible across several different families of SoCs, so move it to the freescale directory and prefix everything with fsl rather than imx6.
Convert the imx6 sdhci "R1B fix" from a busy-loop in the interrupt handler to a callout.
Increase the wait time for acquiring the SD bus from 10 to 250ms.
If no compatible cards were found after probing the SD bus, say so.
Add timeout logic to sdhci, separate from the timeouts done by the hardware.
After a timeout, reset the controller using SDHCI_RESET_CMD|SDHCI_RESET_DATA rather than SDHCI_RESET_ALL; the latter turns off clocks and power, removing any possibility of recovering from the error.
Add a helper routine to depth-search the device tree for a node with a matching 'compatible' property.
|
266160 |
15-May-2014 |
ian |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565, r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
|
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
254716 |
23-Aug-2013 |
ian |
Don't give up so easily on failure of CMD55 to put the card into app-cmd mode. We don't know why it failed, so we can't know that a retry will also fail (the low-level driver might have reset the controller state machine or something similar that would allow a retry to work).
|
254559 |
20-Aug-2013 |
ian |
Make the standard sdhci(4) driver work for the TI OMAP family SoCs. The MMCHS hardware is pretty much a standard SDHCI v2.0 controller with a couple quirks, which are now supported by sdhci(4) as of r254507.
This should work for all TI SoCs that use the MMCHS hardware, but it has only been tested on AM335x right now, so this enables it on those platforms but leaves the existing ti_mmchs driver in place for other OMAP variants until they can be tested.
This initial incarnation lacks DMA support (coming soon). Even without it this improves performance pretty noticibly over the ti_mmchs driver, primarily because it now does multiblock IO.
|
254432 |
17-Aug-2013 |
ian |
Consistently init all mmc request, command, and data structures to zero before using them.
|
254431 |
16-Aug-2013 |
ian |
Handle command retries for commands originating at the mmc layer, and ensure that all such commands have a non-zero retry count except for those that are expected to fail (for example, because they are used to probe for feature support).
While it is possible to pass a retry count down to the hardware driver in the command request structure, no hardware driver currently implements any retry logic. The hardware doesn't know much about the context of a single request, so it makes more sense to handle retries at a layer that does.
This adds retry loops to the mmc_wait_for_cmd() and mmc_wait_for_app_cmd() functions. These functions are the gateway from other code within mmc.c to the hardware. App commands are a sequence of two commands and a retry has to rerun both of them in order, so it needs its own retry loop.
Retry looping is specifically NOT implemented in mmc_wait_for_request() because it is the gateway for children on the bus, and they have to implement their own retry logic depending on what makes sense for them.
|
254427 |
16-Aug-2013 |
ian |
During card identification, run the bus at 400KHz, not the minimum speed the bus claims to be capable of. The 400KHz speed is dictated by the SD and MMC standards.
|
254425 |
16-Aug-2013 |
ian |
Print the card relative address in hex, because that's what all the other debugging output does (when it appears in command arguments, for example).
|
253054 |
09-Jul-2013 |
rpaulo |
Use meaningful names when creating mmc/sd threads.
This can be useful when we want to be able to identify which mmcsd is stuck.
|
250709 |
16-May-2013 |
imp |
When reporting the user readable size, round up. Several SD cards not only use SI units, but also are a couple of percent short. If you need to know the exact size, diskinfo will return exact results.
|
249999 |
27-Apr-2013 |
wkoszek |
Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port.
Submitted by: Thomas Skibo <ThomasSkibo (at) sbcglobal.net> Tested by: wkoszek (ZedBoard) Reviewed by: wkoszek, freebsd-arm@ (no objections raised)
|
249485 |
14-Apr-2013 |
imp |
Print MB and GB instead of MiB and GiB mislabeled as MB and GB. SD cards are sold in GB not GiB, this will result in less confusion. Also, cache parent device pointer to save a few cycles for loops.
|
248689 |
24-Mar-2013 |
ian |
Set the backlink in mmc commands to the mmc request that contains them.
|
245755 |
21-Jan-2013 |
gonzo |
Fix highest voltage detection
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp> Approved by: imp@
|
243387 |
22-Nov-2012 |
emaste |
Use %u for unsigned serial number
|
242321 |
29-Oct-2012 |
gonzo |
Add BCM2835 SDHCI driver and enable it in Raspberry Pi config
|
241600 |
16-Oct-2012 |
gonzo |
Split sdhci driver in two parts: sdhci and sdhci_pci. sdchi encapsulates a generic SD Host Controller logic that relies on actual hardware driver for register access.
sdhci_pci implements driver for PCI SDHC controllers using new SDHCI interface
No kernel config modifications are required, but if you load sdhc as a module you must switch to sdhci_pci instead.
|
241067 |
30-Sep-2012 |
kevlo |
Remove an unneeded NULL check after M_WAITOK.
|
239607 |
23-Aug-2012 |
imp |
The check for MAXPHYS doesn't make sense, so remove it. Report errors indicated by the transport. If this is too chatty, I'll throw it behind a debug write. Remove commented out debugs that are no longer useful.
|
239281 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 10
- Support for Texas Instruments SoCs: - AM335x - OMAP4
- Kernel configs, DTS for Beaglebone and Pandaboard
Submitted by: Ben Gray, Damjan Marion
|
236491 |
02-Jun-2012 |
marius |
Add missing prototypes. While at it, sort them alphabetically.
MFC after: 3 days
|
236156 |
27-May-2012 |
marius |
- Fix some typos in mmc_acquire_bus() and mmc_send_csd(). - Fix some math errors in mmc_decode_csd_sd(). - Fix incorrect arguments to mmc_send_app_op_cond() in mmc_go_discovery(). - Add reporting of CSD for debug purposes. - Add detection (and skipping) of password-locked cards. - Add setting of block length on card if necessary.
Submitted by: Patrick Kelsey MFC after: 3 days
|
234524 |
21-Apr-2012 |
marius |
o Fixes: - When switching to 4-bit operation, send a SET_CLR_CARD_DETECT command to disconnect the card-detect pull-up resistor from the DAT3 line before sending the SET_BUS_WIDTH command. - Add the missing "reserved" zero entry to the mantissa table used to decode various CSD fields. This was causing SD cards to report that they could run at 30 MHz instead of the maximum 25 MHz mandated in the spec. o Enhancements: - At the MMC layer, format various info from the CID into a string that uniquely identifies the card instance (manufacturer number, serial number, product name and revision, etc). Export it as an instance variable. - At the MMCSD layer, display the formatted card ID string, and also report the clock speed of the hardware (not the card's max speed), and the number of bits and number of blocks per transfer. It comes out like this now: mmcsd0: 968MB <SD SD01G 8.0 SN 276886905 MFG 08/2008 by 3 SD> at mmc0 22.5MHz/4bit/128-block o Use DEVMETHOD_END. o Use NULL instead of 0 for pointers.
PR: 156496 Submitted by: Ian Lepore 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.
|
224868 |
14-Aug-2011 |
mav |
Fix integer overflow on 32bit systems when calculating media size, reintroduced by r222475.
Approved by: re (kib)
|
222475 |
30-May-2011 |
jchandra |
Fix read_ivar implementation for MMC and SD.
1. Both mmc_read_ivar() and sdhci_read_ivar() use the expression '*(int *)result = val' to assign to result which is uintptr_t *. This does not work on big-endian 64 bit systems.
2. The media_size ivar is declared as 'off_t' which does not fit into uintptr_t in 32bit systems, change this to long.
Submitted by: kanthms at netlogicmicro com (initial version)
|
217509 |
17-Jan-2011 |
mav |
Fix 32bit bit fields handling. This fixes card serial number fetching. It was just a cosmetic issue, because that number is only reported in logs.
Reported by: Michael Butler on current@
|
216941 |
04-Jan-2011 |
pjd |
Wait for commands to complete 10 times longer. This makes my A-DATA 32GB SDHC card being detected.
Reviewed by: imp MFC after: 2 weeks
|
208441 |
23-May-2010 |
mav |
Report relative card address to NewBus as location string.
|
196403 |
20-Aug-2009 |
jhb |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@.
Approved by: re (kib), attilio
|
196037 |
02-Aug-2009 |
attilio |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races.
Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped.
For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens.
Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing.
Bump __FreeBSD_version in order to reflect the newbus lock introduction.
Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
189727 |
12-Mar-2009 |
imp |
read_ivar takes a uintptr_t * not a u_char *.
|
188725 |
17-Feb-2009 |
mav |
Add kernel dumping support. Works fine with sdhci controller driver.
|
188044 |
03-Feb-2009 |
imp |
o Define some symbols for a few items that are bare constants in the code. o Use NULL in preference to 0 for a few pointers. o default to bus timing normal, like we default to bus_width_1.
|
187877 |
28-Jan-2009 |
mav |
Add one more debug level.
|
187875 |
28-Jan-2009 |
mav |
Improve mmc driver verbose logging. Make requests logging controllable by hw.mmc.debug sysctl.
|
187551 |
21-Jan-2009 |
imp |
Default to normal bus timing mode on SD cards. In practice, most cards people have today support high speed mode, so the timing field would be initialized to bus_timing_hs, but there are some slow cards...
|
187546 |
21-Jan-2009 |
imp |
Fix minor style nit for file consistency.
|
187543 |
21-Jan-2009 |
imp |
Make the command reporting be under boot verbose. Also, report a few other things under boot verbose. Small style nit to make new code look like old code in this file.
|
187525 |
21-Jan-2009 |
mav |
Fix copy/paste mistake in variable name. This could lead to using incorrect bus frequency.
|
185721 |
06-Dec-2008 |
mav |
Implement suspend/resume for mmc and mmcsd drivers. Now it is possible to suspend/resume with inserted and active card.
To reinitialize card on resume and to detect card change while suspended, implement bus rescan routines. It can also be used by controllers without card presence detection signals or with multiple cards per slot support.
While there, cleanup msleep() usage. We have no any rights to exit without "request done" signal from driver as it could lead to modify after free.
|
185202 |
23-Nov-2008 |
mav |
Report card erase sector size as disk stripe size.
|
185201 |
23-Nov-2008 |
mav |
Improve detach handling: close races, flush queue.
|
184452 |
29-Oct-2008 |
mav |
Allow card reader bridge driver to report maximum supported transfer size. sdhci supports up to 65535 blocks transfers, at91_mci - one block.
Enable multiblock operations disabled before to follow at91_mci driver limitations.
Reviewed by: imp@
|
184034 |
18-Oct-2008 |
mav |
Coalesce sequentional BIO_DELETE requests to slightly relax size and alignment constraints required by the card.
|
184033 |
18-Oct-2008 |
mav |
Implement BIO_DELETE command with MMC and SD erase commands.
Erase operation gives card's logic information about unused areas to help it implement wear-leveling with lower overhead comparing to usual writing. Erase is much faster then write and does not depends on data bus speed. Also as result of hitting in-card write logic optimizations I have measured up to 50% performance boost on writing undersized blocks into preerased areas.
At the same time there are strict limitations on size and allignment of erase operations. We can erase only blocks aligned to the erase sector size and with size multiple of it. Different cards has different erase sector size which usually varies from 64KB to 4MB. SD cards actually allow to erase smaller blocks, but it is much more expensive as it is implemented via read-erase-write sequence and so not sutable for the BIO_DELETE purposes.
Reviewed by: imp@
|
183805 |
12-Oct-2008 |
mav |
Use GB suffix only from 10GB instead of 1GB. There are lot of cards with uneven sizes and too strong rounding will lead to very significant rounding errors.
Reviewed by: imp@
|
183775 |
12-Oct-2008 |
imp |
style(9): spaces around operators.
|
183774 |
12-Oct-2008 |
imp |
Print the cards natural size. Move nested tertiary operator expressions into their own function. Remove extra blank line. cache sd->disk in 'd' to make the code easier to read.
|
183765 |
11-Oct-2008 |
mav |
SELECT_CARD command with zero RCA deselects all cards and so has no reply.
|
183763 |
11-Oct-2008 |
mav |
Give mmcsd driver a bit more information about card. It allows to reorganize log message in a way a bit more common for disk devices. Also it will allow mmcsd driver to use MMC/SD specific commands when needed.
|
183731 |
09-Oct-2008 |
mav |
Add high capacity MMC cards support.
|
183729 |
09-Oct-2008 |
imp |
o Use seprate routines to decode cid and csd for sd and mmc cards. All they have in common right now is a memset. This saves a parameter to these routines, as well as a level of indentation. o Make mmc_get_bits a little clearer... It really only works on 128-bit registers right now.
|
183709 |
08-Oct-2008 |
mav |
Only voltage bits should be zero in send_op_cond argument to ignore busy.
|
183708 |
08-Oct-2008 |
mav |
Generic SD Host Controller driver going to be named sdhci.
|
183705 |
08-Oct-2008 |
mav |
Fix bit offset in mmc_sd_switch().
|
183704 |
08-Oct-2008 |
mav |
Set of mmc layer improvements: - add MMC support. - add SDHC support. - add 4 and 8 bit bus width support. - add High Speed bus timing support.
|
183542 |
02-Oct-2008 |
imp |
Define and use MMC_SECTOR_SIZE. Make mmc_get_media_size now return an off_t and remove now useless cast.
|
183541 |
02-Oct-2008 |
imp |
MAXPHYS seems more stable on the AT91RM9200 boards that I have. We may need to ask the host controller for the right number to use here...
|
183480 |
30-Sep-2008 |
imp |
Improve support for multiple block read/write. This code is currently disabled by default because there's problems with it on AT91RM9200, currently the only host controller in the tree. I've not had time to track those problems to ground. I'm committing because this is important for other host controllers that are in the pipeline.
Submitted by: mav@
|
183471 |
29-Sep-2008 |
imp |
Make the media size return the block rather than the bytes on the device.
|
183470 |
29-Sep-2008 |
imp |
Explicitly set data to NULL rather than relying mmc_wait_for_cmd() to do it for us. There may be commands we have to wait for that need to set data.
Submitted by: mav@
|
183468 |
29-Sep-2008 |
imp |
Minor style fixes from mav@ (with similar problems fixed where I noticed them): #define<tab> zero memory when we allocate it Put device name in error message.
Submitted by: mav@
|
183467 |
29-Sep-2008 |
imp |
Conform to style(9) for return (foo); The files were a mix before.
Submitted by: mav@
|
183453 |
29-Sep-2008 |
imp |
Convert all C++ comments to C style. There's lots of folks that don't like them and they don't add enough to be worth standing out.
|
183452 |
29-Sep-2008 |
imp |
The parameters to the MMCBR_ACQUIRE_HOST and MMCBR_RELEAES_HOST were the device in question, rather than the bus doing the requesting. Fix it so that it is the bus.
Submitted by: mav@
|
183450 |
28-Sep-2008 |
imp |
Add "caps" word to host bridge.
|
183449 |
28-Sep-2008 |
imp |
Implement power down, and power down the bus on detach.
Submitted by: mav@
|
183448 |
28-Sep-2008 |
imp |
When a device is read only, fail all non-read BIO requests.
Submitted by: mav@
|
183447 |
28-Sep-2008 |
imp |
Propigate read-only status of cards. Right now it is read only at device attach time. We may need to read this more often in the future, but for now simplicity of implementation wins.
Submitted by: mav@
|
183446 |
28-Sep-2008 |
imp |
The OCR register defines both acceptable voltage bits, as well as bits for other things. Mask out the voltage only bits when returning the Vdd mask for voltage computation.
Submitted by: mav@
|
183445 |
28-Sep-2008 |
imp |
Other busses on the system use the official capitalization for the technology. Make mmc conform to that.
Submitted by: mav@
|
183444 |
28-Sep-2008 |
imp |
Fix line continuation whitespace.
Submitted by: mav@
|
172836 |
20-Oct-2007 |
julian |
Rename the kthread_xxx (e.g. kthread_create()) calls to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first.
I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
|
170337 |
05-Jun-2007 |
imp |
MFp4: When querying the operating condition of SD cards (using the application specific SEND_OP_COND (CMD55 + ACMD41), go ahead and allow 100 tries. This gives a timeout of a second rather than the ~100ms the old style produces.
I've had one old 16MB SD card which needs the extra time. I've now had reports from the field that other cards need this too.
Originally done at BSDcan 2007 while waiting to give my embedding madness minitalk.
|
170002 |
26-May-2007 |
imp |
A careful reading of the disclaimer that is required to download the SD Simplified specification, as well as other SD and SDIO implemenations I've examined, suggest this disclaimer may be required. It is unclear to me exactly what the license would be for, or why it might be required. Err on the side of caution and include this disclaimer so anybody deploying this code can judge for themselves. I have no further unformation about the details.
|
169567 |
15-May-2007 |
imp |
First cut at making detach work. also add sdh as a possible mmc bridge.
Submitted by: Andrea Bittau (Andrea may have updated patches, but I've tested these)
|
169566 |
15-May-2007 |
imp |
Don't need mmc_mode ivar
|
163516 |
20-Oct-2006 |
imp |
Preliminary MMC stack. This stack supports SD 1.0 cards only, but should be easily adapted to SD 2.0 (aka SDHC), SDIO, MMC and MMCplus cards. At the present time, there's only one bridge driver for the ARM9 based Atmel AT91RM9200.
|