summaryrefslogtreecommitdiff
path: root/include/ide.h
AgeCommit message (Collapse)AuthorFilesLines
2023-04-27ide: Make function staticSimon Glass1-11/+0
Only one function is called from outside this file. Make all the others static. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Create a prototype for ide_set_reset()Simon Glass1-0/+10
This is used by a board so should be in the header file. Add it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Drop weak functionsSimon Glass1-13/+0
These are not used from outside this file anymore. Make them static and remove them from the header file. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Drop ide_device_present()Simon Glass1-4/+0
This function is not used anymore. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Move ide_init() into probingSimon Glass1-1/+0
At present the code does ide_init() as a separate operation, then calls device_probe() to copy over the information. We can call ide_init() from probe just as easily. The only difference is that using 'ide init' twice will do nothing. However it already fails to copy over the new data in that case, so the effect is the same. For now, unbind the block devices and remove the IDE device, which causes the bus to be probed again. Later patches will fix this up fully, so that all blk_desc data is copied across. Since ide_reset() is only called from ide_init(), there is no need to init the ide_dev_desc[] array. This is already done at the end of ide_init() so drop this code. The call to uclass_first_device() is now within the probe() function of the same device, so does nothing. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Drop init for not using BLKSimon Glass1-7/+0
ALl boards use CONFIG_BLK now so this code is not used. Drop it and the header-file #ifdef Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Drop CONFIG_START_IDESimon Glass1-7/+0
This is not used by any board. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-04-27ide: Move ATA_CURR_BASE to C fileSimon Glass1-3/+0
This is not used outside one C file. Move it out of the header to reduce its visbility. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-06-28block: ide: Remove ide_preinit functionTom Rini1-4/+0
The only platform currently that defines an ide_preinit function has an empty one that immediately returns. Remove this hook. Signed-off-by: Tom Rini <trini@konsulko.com>
2022-02-09ide: Drop CONFIG_IDE_AHBSimon Glass1-7/+0
This is not used in U-Boot anymore. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-01-19doc: replace @return by Return:Heinrich Schuchardt1-1/+1
Sphinx expects Return: and not @return to indicate a return value. find . -name '*.c' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; find . -name '*.h' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini1-2/+1
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-09-03block: ide: Drop CONFIG_IDE_LEDBin Meng1-13/+0
This is actually not used. Drop it. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2017-09-03block: ide: Drop CONFIG_IDE_INIT_POSTRESETBin Meng1-4/+0
This is not referenced anywhere. Drop it. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2016-05-17dm: ide: Add support for driver-model block devicesSimon Glass1-0/+8
Add driver-model block-device support to the IDE implementation. Signed-off-by: Simon Glass <sjg@chromium.org>
2016-03-14dm: Add a new header for block devicesSimon Glass1-10/+2
At present block devices are tied up with partitions. But not all block devices have partitions within them. They are in fact separate concepts. Create a separate blk.h header file for block devices. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2016-03-14dm: Drop the block_dev_desc_t typedefSimon Glass1-3/+3
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long and causes 80-column violations, rename it to struct blk_desc. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2016-01-13block: pass block dev not num to read/write/erase()Stephen Warren1-2/+4
This will allow the implementation to make use of data in the block_dev structure beyond the base device number. This will be useful so that eMMC block devices can encompass the HW partition ID rather than treating this out-of-band. Equally, the existence of the priv field is crying out for this patch to exist. Signed-off-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2016-01-13part_dos.c: Don't wrap to negative after 2G sectorsStefan Monnier1-4/+4
In order to support large IDE disks we need to make certain types be lbaint_t now. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Stefan Monnier <monnier@iro.umontreal.ca>
2014-10-25ide: add missing prototypeJeroen Hofstee1-0/+1
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
2014-07-22common: cmd_ide: use __weak and add prototypesJeroen Hofstee1-0/+4
clang chokes about the concept of having an alias to an always_inlined function. gcc likely just ignores the always inlined since binary sizes are equal before and after this patch. Convert the aliases to weak functions and provide missing prototypes. cc: Pavel Herrmann <morpheus.ibis@gmail.com> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
2013-07-25Merge branch 'master' of git://git.denx.de/u-boot-nds32Tom Rini1-1/+1
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk1-17/+1
Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
2013-07-24block: constify sect_buf argument of ide_write_dataGabor Juhos1-1/+1
Add a const keyword to the sect_buf argument of ide_write_data to fix the following warning: cmd_ide.c: In function '__ide_output_data': cmd_ide.c:548: warning: passing argument 2 of 'ide_write_data' discards qualifiers from pointer target type /devel/u-boot.git/include/ide.h:76: note: expected 'ulong *' but argument is of type 'const ulong *' Also modify the driver-model documentation to match with the new prototype. Compile tested only. Cc: Macpaul Lin <macpaul@andestech.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
2013-07-15Fix ext2/ext4 filesystem accesses beyond 2TiBFrederic Leroy1-0/+2
With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type, which is required to represent block numbers for storage devices that exceed 2TiB (the block size usually is 512B), e.g. recent hard drives We now use lbaint_t for partition offset to reflect the lbaint_t change, and access partitions beyond or crossing the 2.1TiB limit. This required changes to signature of ext4fs_devread(), and type of all variables relatives to block sector. ext2/ext4 fs uses logical block represented by a 32 bit value. Logical block is a multiple of device block sector. To avoid overflow problem when calling ext4fs_devread(), we need to cast the sector parameter. Signed-off-by: Frédéric Leroy <fredo@starox.org>
2013-06-26Fix block device accesses beyond 2TiBSascha Silbe1-2/+3
With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type, which is required to represent block numbers for storage devices that exceed 2TiB (the block size usually is 512B), e.g. recent hard drives. For some obscure reason, the current U-Boot code uses lbaint_t for the number of blocks to read (a rather optimistic estimation of how RAM sizes will evolve), but not for the starting address. Trying to access blocks beyond the 2TiB boundary will simply wrap around and read a block within the 0..2TiB range. We now use lbaint_t for block start addresses, too. This required changes to all block drivers as the signature of block_read(), block_write() and block_erase() in block_dev_desc_t changed. Signed-off-by: Sascha Silbe <t-uboot@infra-silbe.de>
2013-03-15Adjust board_r.c for ppcSimon Glass1-0/+7
This adds ppc features to the generic post-relocation board init. Signed-off-by: Simon Glass <sjg@chromium.org>
2012-10-22ide: Add printf format string for CONFIG_SYS_64BIT_LBA optionGabe Black1-0/+2
The size of an LBA type changes depending on this option. We need to use a different printf() string in each case, so create a define for this. Signed-off-by: Gabe Black <gabeblack@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
2012-10-17change all versions of input_data() and output_data() to global weak aliasesPavel Herrmann1-0/+11
This changes input_data() and friends from static function to global symbols under weak alias, to enable board specific overrides (and therefore get rid of board-specific code in cmd_ide.c) Also declare ide_bus_offset in the header file, so other files can use ATA_CURR_BASE as well. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
2012-10-17split mpc8xx hooks from cmd_ide.cPavel Herrmann1-0/+8
move most of mpc8xx hooks from cmd_ide.c into ide_preinit() and newly created ide_init_postreset() (invoked after calling ide_reset after ide_preinit), some cleanup to make checkpatch happy, enable IDE init hooks in configs of affected boards. confusingly, these hooks are used by more than just mpc8xx-based boards, and therefore are placed in arch/ppc/lib/ note: checkpatch still emits warnings about using volatile Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
2012-10-15ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)Tom Rini1-2/+2
block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt not ulong Signed-off-by: Tom Rini <trini@ti.com>
2012-10-08ide: Correct IDE_BUS(dev) macroLuka Perkov1-1/+1
The IDE_BUS(dev) macro was previously doing dev >> 1. This however is a mis-match of the usage in common/cmd_ide.c and would cause boards with multiple ports / devices to not correctly detect all devices. For more details please see: http://lists.denx.de/pipermail/u-boot/2012-April/122525.html [Tom Rini: Reword commit message only] Tested-by: Luka Perkov <uboot@lukaperkov.net> Signed-off-by: Simon Baatz <gmbnomis@gmail.com> Signed-off-by: Tom Rini <trini@ti.com>
2011-04-30IDE: fix compiler warningsWolfgang Denk1-1/+1
The changes introduced by commit 0abddf8 ``cmd_ide: enhance new feature "CONFIG_IDE_AHB"'' caused compiler warnings like cmd_ide.c: In function 'ide_init': cmd_ide.c:716: warning: assignment from incompatible pointer type Constify the respective function arguments to fix this. Signed-off-by: Wolfgang Denk <wd@denx.de>
2011-04-30cmd_ide: enhance new feature "CONFIG_IDE_AHB"Macpaul Lin1-0/+7
Although most IDE controller is designed to be connected to PCI bridge, there are still some IDE controller support AHB interface for SoC design. The driver implementation of these IDE-AHB controllers differ from other IDE-PCI controller, some additional registers and commands access is required during CMD/DATA I/O. Hence a configuration "CONFIG_IDE_AHB" in cmd_ide.c is required to be defined to support these kinds of SoC controllers. Such as Faraday's FTIDE020 series and Global Unichip's UINF-0301. Signed-off-by: Macpaul Lin <macpaul@andestech.com>
2009-09-25mucmc52, uc101: delete ata@3a00 node, if no CF card is detectedHeiko Schocher1-0/+3
U-Boot can detect if an IDE device is present or not. If not, and this new config option is activated, U-Boot removes the ATA node from the DTS before booting Linux, so the Linux IDE driver does not probe the device and crash. This is needed for buggy hardware (uc101) where no pull down resistor is connected to the signal IDE5V_DD7. Signed-off-by: Heiko Schocher <hs@denx.de>
2008-10-18rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD1-2/+2
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2007-08-28IDE: - make ide_inb () and ide_outb () "weak", so boards canHeiko Schocher1-0/+2
define there own I/O functions. (Needed for the pcs440ep board). - The default I/O Functions are again 8 Bit accesses. - Added CONFIG_CMD_IDE for the pcs440ep Board. Signed-off-by: Heiko Schocher <hs@denx.de>
2007-02-20[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write ↵Grant Likely1-2/+2
buffer pointers Block device read/write is anonymous data; there is no need to use a typed pointer. void * is fine. Also add a hook for block_read functions Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2007-02-20[PATCH 1_4] Merge common get_dev() routines for block devicesGrant Likely1-3/+3
Each of the filesystem drivers duplicate the get_dev routine. This change merges them into a single function in part.c Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2004-03-14Code cleanup; make several boards compile & link.wdenk1-1/+1
2004-03-13* Patch by Rune Torgersen, 27 Feb 2004:wdenk1-2/+8
- Added LBA48 support (CONFIG_LBA48 & CFG_64BIT_LBA) - Added support for 64bit printing in vsprintf (CFG_64BIT_VSPRINTF) - Added support for 64bit strtoul (CFG_64BIT_STRTOUL) * Patch by Masami Komiya, 27 Feb 2004: Fix rarpboot: add autoload by NFS * Patch by Dan Eisenhut, 26 Feb 2004: fix flash_write return value in saveenv * Patch by Stephan Linz, 11 Dec 2003 expand config.mk to avoid trigraph warnings on NIOS * Rename "BMS2003" board into "HMI10"
2002-08-27Initial revisionwdenk1-0/+49