History log of /u-boot/include/ide.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 1b33fd83 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Make function static

Only one function is called from outside this file. Make all the others
static.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 1486c906 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Create a prototype for ide_set_reset()

This is used by a board so should be in the header file. Add it.

Signed-off-by: Simon Glass <sjg@chromium.org>

# f8e87e73 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Drop weak functions

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>

# 62d13fa6 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Drop ide_device_present()

This function is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 80778f50 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Move ide_init() into probing

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>

# 00a79f21 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Drop init for not using BLK

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>

# 09178511 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Drop CONFIG_START_IDE

This is not used by any board. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 14a4f52b 25-Apr-2023 Simon Glass <sjg@chromium.org>

ide: Move ATA_CURR_BASE to C file

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>

# 713a8cbb 10-Jun-2022 Tom Rini <trini@konsulko.com>

block: ide: Remove ide_preinit function

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>

# e30be6e4 22-Jan-2022 Simon Glass <sjg@chromium.org>

ide: Drop CONFIG_IDE_AHB

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>

# 185f812c 19-Jan-2022 Heinrich Schuchardt <xypron.glpk@gmx.de>

doc: replace @return by Return:

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>

# 83d290c5 06-May-2018 Tom Rini <trini@konsulko.com>

SPDX: Convert all of our single license tags to Linux Kernel style

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>

# caa8bfbc 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_LED

This is actually not used. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# f1823d3a 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_INIT_POSTRESET

This is not referenced anywhere. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# 145df842 01-May-2016 Simon Glass <sjg@chromium.org>

dm: ide: Add support for driver-model block devices

Add driver-model block-device support to the IDE implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 1a73661b 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Add a new header for block devices

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>

# 4101f687 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Drop the block_dev_desc_t typedef

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>

# 7c4213f6 07-Dec-2015 Stephen Warren <swarren@nvidia.com>

block: pass block dev not num to read/write/erase()

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>

# d29892ba 25-Aug-2015 Stefan Monnier <monnier@iro.umontreal.ca>

part_dos.c: Don't wrap to negative after 2G sectors

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>

# 611aee2b 08-Oct-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

ide: add missing prototype

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>

# 288afdc9 12-Jul-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

common: cmd_ide: use __weak and add prototypes

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>

# aaf5e825 25-Jul-2013 Tom Rini <trini@konsulko.com>

Merge branch 'master' of git://git.denx.de/u-boot-nds32


# 1a459660 08-Jul-2013 Wolfgang Denk <wd@denx.de>

Add GPL-2.0+ SPDX-License-Identifier to source files

Signed-off-by: Wolfgang Denk <wd@denx.de>
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini <trini@ti.com>

# c575180b 25-May-2013 Gabor Juhos <juhosg@openwrt.org>

block: constify sect_buf argument of ide_write_data

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>

# 04735e9c 26-Jun-2013 Frederic Leroy <fredo@starox.org>

Fix ext2/ext4 filesystem accesses beyond 2TiB

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>

# ff8fef56 14-Jun-2013 Sascha Silbe <t-uboot@infra-silbe.de>

Fix block device accesses beyond 2TiB

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>

# c2240d4d 14-Mar-2013 Simon Glass <sjg@chromium.org>

Adjust board_r.c for ppc

This adds ppc features to the generic post-relocation board init.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 24a3fdd6 12-Oct-2012 Gabe Black <gabeblack@chromium.org>

ide: Add printf format string for CONFIG_SYS_64BIT_LBA option

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>

# f5b82c0f 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

change all versions of input_data() and output_data() to global weak aliases

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>

# 8d1165e11a 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

split mpc8xx hooks from cmd_ide.c

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>

# 4ac8f8e0 29-Sep-2012 Tom Rini <trini@konsulko.com>

ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)

block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong

Signed-off-by: Tom Rini <trini@ti.com>

# 8a10180d 14-May-2012 Luka Perkov <uboot@lukaperkov.net>

ide: Correct IDE_BUS(dev) macro

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>

# 96d04c31 30-Apr-2011 Wolfgang Denk <wd@denx.de>

IDE: fix compiler warnings

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>

# 0abddf82 11-Apr-2011 Macpaul Lin <macpaul@andestech.com>

cmd_ide: enhance new feature "CONFIG_IDE_AHB"

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>

# 3887c3fb 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>

# 6d0f6bcf 16-Oct-2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

rename CFG_ macros to CONFIG_SYS

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

# f98984cb 28-Aug-2007 Heiko Schocher <hs@pollux.denx.de>

IDE: - make ide_inb () and ide_outb () "weak", so boards can
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>

# eb867a76 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write 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>

# 735dd97b 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 1_4] Merge common get_dev() routines for block devices

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>

# 42dfe7a1 14-Mar-2004 Wolfgang Denk <wd@denx.de>

Code cleanup; make several boards compile & link.

# c40b2956 13-Mar-2004 Wolfgang Denk <wd@denx.de>

* Patch by Rune Torgersen, 27 Feb 2004:
- 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"

# 0f9cfa09 27-Aug-2002 Wolfgang Denk <wd@denx.de>

Initial revision

# 713a8cbb 10-Jun-2022 Tom Rini <trini@konsulko.com>

block: ide: Remove ide_preinit function

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>

# e30be6e4 22-Jan-2022 Simon Glass <sjg@chromium.org>

ide: Drop CONFIG_IDE_AHB

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>

# 185f812c 19-Jan-2022 Heinrich Schuchardt <xypron.glpk@gmx.de>

doc: replace @return by Return:

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>

# 83d290c5 06-May-2018 Tom Rini <trini@konsulko.com>

SPDX: Convert all of our single license tags to Linux Kernel style

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>

# caa8bfbc 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_LED

This is actually not used. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# f1823d3a 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_INIT_POSTRESET

This is not referenced anywhere. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# 145df842 01-May-2016 Simon Glass <sjg@chromium.org>

dm: ide: Add support for driver-model block devices

Add driver-model block-device support to the IDE implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 1a73661b 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Add a new header for block devices

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>

# 4101f687 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Drop the block_dev_desc_t typedef

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>

# 7c4213f6 07-Dec-2015 Stephen Warren <swarren@nvidia.com>

block: pass block dev not num to read/write/erase()

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>

# d29892ba 25-Aug-2015 Stefan Monnier <monnier@iro.umontreal.ca>

part_dos.c: Don't wrap to negative after 2G sectors

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>

# 611aee2b 08-Oct-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

ide: add missing prototype

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>

# 288afdc9 12-Jul-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

common: cmd_ide: use __weak and add prototypes

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>

# aaf5e825 25-Jul-2013 Tom Rini <trini@konsulko.com>

Merge branch 'master' of git://git.denx.de/u-boot-nds32


# 1a459660 08-Jul-2013 Wolfgang Denk <wd@denx.de>

Add GPL-2.0+ SPDX-License-Identifier to source files

Signed-off-by: Wolfgang Denk <wd@denx.de>
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini <trini@ti.com>

# c575180b 25-May-2013 Gabor Juhos <juhosg@openwrt.org>

block: constify sect_buf argument of ide_write_data

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>

# 04735e9c 26-Jun-2013 Frederic Leroy <fredo@starox.org>

Fix ext2/ext4 filesystem accesses beyond 2TiB

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>

# ff8fef56 14-Jun-2013 Sascha Silbe <t-uboot@infra-silbe.de>

Fix block device accesses beyond 2TiB

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>

# c2240d4d 14-Mar-2013 Simon Glass <sjg@chromium.org>

Adjust board_r.c for ppc

This adds ppc features to the generic post-relocation board init.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 24a3fdd6 12-Oct-2012 Gabe Black <gabeblack@chromium.org>

ide: Add printf format string for CONFIG_SYS_64BIT_LBA option

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>

# f5b82c0f 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

change all versions of input_data() and output_data() to global weak aliases

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>

# 8d1165e11a 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

split mpc8xx hooks from cmd_ide.c

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>

# 4ac8f8e0 29-Sep-2012 Tom Rini <trini@konsulko.com>

ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)

block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong

Signed-off-by: Tom Rini <trini@ti.com>

# 8a10180d 14-May-2012 Luka Perkov <uboot@lukaperkov.net>

ide: Correct IDE_BUS(dev) macro

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>

# 96d04c31 30-Apr-2011 Wolfgang Denk <wd@denx.de>

IDE: fix compiler warnings

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>

# 0abddf82 11-Apr-2011 Macpaul Lin <macpaul@andestech.com>

cmd_ide: enhance new feature "CONFIG_IDE_AHB"

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>

# 3887c3fb 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>

# 6d0f6bcf 16-Oct-2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

rename CFG_ macros to CONFIG_SYS

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

# f98984cb 28-Aug-2007 Heiko Schocher <hs@pollux.denx.de>

IDE: - make ide_inb () and ide_outb () "weak", so boards can
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>

# eb867a76 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write 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>

# 735dd97b 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 1_4] Merge common get_dev() routines for block devices

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>

# 42dfe7a1 14-Mar-2004 Wolfgang Denk <wd@denx.de>

Code cleanup; make several boards compile & link.

# c40b2956 13-Mar-2004 Wolfgang Denk <wd@denx.de>

* Patch by Rune Torgersen, 27 Feb 2004:
- 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"

# 0f9cfa09 27-Aug-2002 Wolfgang Denk <wd@denx.de>

Initial revision

# e30be6e4 22-Jan-2022 Simon Glass <sjg@chromium.org>

ide: Drop CONFIG_IDE_AHB

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>

# 185f812c 19-Jan-2022 Heinrich Schuchardt <xypron.glpk@gmx.de>

doc: replace @return by Return:

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>

# 83d290c5 06-May-2018 Tom Rini <trini@konsulko.com>

SPDX: Convert all of our single license tags to Linux Kernel style

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>

# caa8bfbc 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_LED

This is actually not used. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# f1823d3a 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_INIT_POSTRESET

This is not referenced anywhere. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# 145df842 01-May-2016 Simon Glass <sjg@chromium.org>

dm: ide: Add support for driver-model block devices

Add driver-model block-device support to the IDE implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 1a73661b 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Add a new header for block devices

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>

# 4101f687 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Drop the block_dev_desc_t typedef

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>

# 7c4213f6 07-Dec-2015 Stephen Warren <swarren@nvidia.com>

block: pass block dev not num to read/write/erase()

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>

# d29892ba 25-Aug-2015 Stefan Monnier <monnier@iro.umontreal.ca>

part_dos.c: Don't wrap to negative after 2G sectors

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>

# 611aee2b 08-Oct-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

ide: add missing prototype

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>

# 288afdc9 12-Jul-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

common: cmd_ide: use __weak and add prototypes

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>

# aaf5e825 25-Jul-2013 Tom Rini <trini@ti.com>

Merge branch 'master' of git://git.denx.de/u-boot-nds32


# 1a459660 08-Jul-2013 Wolfgang Denk <wd@denx.de>

Add GPL-2.0+ SPDX-License-Identifier to source files

Signed-off-by: Wolfgang Denk <wd@denx.de>
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini <trini@ti.com>

# c575180b 25-May-2013 Gabor Juhos <juhosg@openwrt.org>

block: constify sect_buf argument of ide_write_data

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>

# 04735e9c 26-Jun-2013 Frederic Leroy <fredo@starox.org>

Fix ext2/ext4 filesystem accesses beyond 2TiB

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>

# ff8fef56 14-Jun-2013 Sascha Silbe <t-uboot@infra-silbe.de>

Fix block device accesses beyond 2TiB

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>

# c2240d4d 14-Mar-2013 Simon Glass <sjg@chromium.org>

Adjust board_r.c for ppc

This adds ppc features to the generic post-relocation board init.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 24a3fdd6 12-Oct-2012 Gabe Black <gabeblack@chromium.org>

ide: Add printf format string for CONFIG_SYS_64BIT_LBA option

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>

# f5b82c0f 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

change all versions of input_data() and output_data() to global weak aliases

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>

# 8d1165e11a 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

split mpc8xx hooks from cmd_ide.c

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>

# 4ac8f8e0 29-Sep-2012 Tom Rini <trini@ti.com>

ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)

block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong

Signed-off-by: Tom Rini <trini@ti.com>

# 8a10180d 14-May-2012 Luka Perkov <uboot@lukaperkov.net>

ide: Correct IDE_BUS(dev) macro

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>

# 96d04c31 30-Apr-2011 Wolfgang Denk <wd@denx.de>

IDE: fix compiler warnings

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>

# 0abddf82 11-Apr-2011 Macpaul Lin <macpaul@andestech.com>

cmd_ide: enhance new feature "CONFIG_IDE_AHB"

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>

# 3887c3fb 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>

# 6d0f6bcf 16-Oct-2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

rename CFG_ macros to CONFIG_SYS

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

# f98984cb 28-Aug-2007 Heiko Schocher <hs@pollux.denx.de>

IDE: - make ide_inb () and ide_outb () "weak", so boards can
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>

# eb867a76 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write 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>

# 735dd97b 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 1_4] Merge common get_dev() routines for block devices

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>

# 42dfe7a1 14-Mar-2004 Wolfgang Denk <wdenk>

Code cleanup; make several boards compile & link.

# c40b2956 13-Mar-2004 Wolfgang Denk <wdenk>

* Patch by Rune Torgersen, 27 Feb 2004:
- 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"

# 0f9cfa09 27-Aug-2002 Wolfgang Denk <wdenk>

Initial revision

# 185f812c 19-Jan-2022 Heinrich Schuchardt <xypron.glpk@gmx.de>

doc: replace @return by Return:

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>

# 83d290c5 06-May-2018 Tom Rini <trini@konsulko.com>

SPDX: Convert all of our single license tags to Linux Kernel style

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>

# caa8bfbc 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_LED

This is actually not used. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# f1823d3a 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_INIT_POSTRESET

This is not referenced anywhere. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

# 145df842 01-May-2016 Simon Glass <sjg@chromium.org>

dm: ide: Add support for driver-model block devices

Add driver-model block-device support to the IDE implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 1a73661b 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Add a new header for block devices

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>

# 4101f687 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Drop the block_dev_desc_t typedef

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>

# 7c4213f6 07-Dec-2015 Stephen Warren <swarren@nvidia.com>

block: pass block dev not num to read/write/erase()

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>

# d29892ba 25-Aug-2015 Stefan Monnier <monnier@iro.umontreal.ca>

part_dos.c: Don't wrap to negative after 2G sectors

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>

# 611aee2b 08-Oct-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

ide: add missing prototype

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>

# 288afdc9 12-Jul-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

common: cmd_ide: use __weak and add prototypes

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>

# aaf5e825 25-Jul-2013 Tom Rini <trini@ti.com>

Merge branch 'master' of git://git.denx.de/u-boot-nds32


# 1a459660 08-Jul-2013 Wolfgang Denk <wd@denx.de>

Add GPL-2.0+ SPDX-License-Identifier to source files

Signed-off-by: Wolfgang Denk <wd@denx.de>
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini <trini@ti.com>

# c575180b 25-May-2013 Gabor Juhos <juhosg@openwrt.org>

block: constify sect_buf argument of ide_write_data

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>

# 04735e9c 26-Jun-2013 Frederic Leroy <fredo@starox.org>

Fix ext2/ext4 filesystem accesses beyond 2TiB

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>

# ff8fef56 14-Jun-2013 Sascha Silbe <t-uboot@infra-silbe.de>

Fix block device accesses beyond 2TiB

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>

# c2240d4d 14-Mar-2013 Simon Glass <sjg@chromium.org>

Adjust board_r.c for ppc

This adds ppc features to the generic post-relocation board init.

Signed-off-by: Simon Glass <sjg@chromium.org>

# 24a3fdd6 12-Oct-2012 Gabe Black <gabeblack@chromium.org>

ide: Add printf format string for CONFIG_SYS_64BIT_LBA option

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>

# f5b82c0f 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

change all versions of input_data() and output_data() to global weak aliases

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>

# 8d1165e11a 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

split mpc8xx hooks from cmd_ide.c

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>

# 4ac8f8e0 29-Sep-2012 Tom Rini <trini@ti.com>

ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)

block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong

Signed-off-by: Tom Rini <trini@ti.com>

# 8a10180d 14-May-2012 Luka Perkov <uboot@lukaperkov.net>

ide: Correct IDE_BUS(dev) macro

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>

# 96d04c31 30-Apr-2011 Wolfgang Denk <wd@denx.de>

IDE: fix compiler warnings

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>

# 0abddf82 11-Apr-2011 Macpaul Lin <macpaul@andestech.com>

cmd_ide: enhance new feature "CONFIG_IDE_AHB"

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>

# 3887c3fb 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>

# 6d0f6bcf 16-Oct-2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

rename CFG_ macros to CONFIG_SYS

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

# f98984cb 28-Aug-2007 Heiko Schocher <hs@pollux.denx.de>

IDE: - make ide_inb () and ide_outb () "weak", so boards can
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>

# eb867a76 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write 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>

# 735dd97b 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 1_4] Merge common get_dev() routines for block devices

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>

# 42dfe7a1 14-Mar-2004 Wolfgang Denk <wdenk>

Code cleanup; make several boards compile & link.

# c40b2956 13-Mar-2004 Wolfgang Denk <wdenk>

* Patch by Rune Torgersen, 27 Feb 2004:
- 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"

# 0f9cfa09 27-Aug-2002 Wolfgang Denk <wdenk>

Initial revision

# 83d290c5 06-May-2018 Tom Rini <trini@konsulko.com>

SPDX: Convert all of our single license tags to Linux Kernel style

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>


# caa8bfbc 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_LED

This is actually not used. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>


# f1823d3a 02-Sep-2017 Bin Meng <bmeng.cn@gmail.com>

block: ide: Drop CONFIG_IDE_INIT_POSTRESET

This is not referenced anywhere. Drop it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>


# 145df842 01-May-2016 Simon Glass <sjg@chromium.org>

dm: ide: Add support for driver-model block devices

Add driver-model block-device support to the IDE implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>


# 1a73661b 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Add a new header for block devices

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>


# 4101f687 29-Feb-2016 Simon Glass <sjg@chromium.org>

dm: Drop the block_dev_desc_t typedef

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>


# 7c4213f6 07-Dec-2015 Stephen Warren <swarren@nvidia.com>

block: pass block dev not num to read/write/erase()

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>


# d29892ba 25-Aug-2015 Stefan Monnier <monnier@iro.umontreal.ca>

part_dos.c: Don't wrap to negative after 2G sectors

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>


# 611aee2b 08-Oct-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

ide: add missing prototype

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>


# 288afdc9 12-Jul-2014 Jeroen Hofstee <jeroen@myspectrum.nl>

common: cmd_ide: use __weak and add prototypes

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>


# 1a459660 08-Jul-2013 Wolfgang Denk <wd@denx.de>

Add GPL-2.0+ SPDX-License-Identifier to source files

Signed-off-by: Wolfgang Denk <wd@denx.de>
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini <trini@ti.com>


# c575180b 25-May-2013 Gabor Juhos <juhosg@openwrt.org>

block: constify sect_buf argument of ide_write_data

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>


# 04735e9c 26-Jun-2013 Frederic Leroy <fredo@starox.org>

Fix ext2/ext4 filesystem accesses beyond 2TiB

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>


# ff8fef56 14-Jun-2013 Sascha Silbe <t-uboot@infra-silbe.de>

Fix block device accesses beyond 2TiB

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>


# c2240d4d 14-Mar-2013 Simon Glass <sjg@chromium.org>

Adjust board_r.c for ppc

This adds ppc features to the generic post-relocation board init.

Signed-off-by: Simon Glass <sjg@chromium.org>


# 24a3fdd6 12-Oct-2012 Gabe Black <gabeblack@chromium.org>

ide: Add printf format string for CONFIG_SYS_64BIT_LBA option

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>


# f5b82c0f 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

change all versions of input_data() and output_data() to global weak aliases

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>


# 8d1165e11a 09-Oct-2012 Pavel Herrmann <morpheus.ibis@gmail.com>

split mpc8xx hooks from cmd_ide.c

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>


# 4ac8f8e0 29-Sep-2012 Tom Rini <trini@ti.com>

ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)

block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong

Signed-off-by: Tom Rini <trini@ti.com>


# 8a10180d 14-May-2012 Luka Perkov <uboot@lukaperkov.net>

ide: Correct IDE_BUS(dev) macro

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>


# 96d04c31 30-Apr-2011 Wolfgang Denk <wd@denx.de>

IDE: fix compiler warnings

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>


# 0abddf82 11-Apr-2011 Macpaul Lin <macpaul@andestech.com>

cmd_ide: enhance new feature "CONFIG_IDE_AHB"

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>


# b393a895 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>


# 3887c3fb 22-Sep-2009 Heiko Schocher <hs@denx.de>

mucmc52, uc101: delete ata@3a00 node, if no CF card is detected

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>


# 6d0f6bcf 16-Oct-2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

rename CFG_ macros to CONFIG_SYS

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>


# f98984cb 28-Aug-2007 Heiko Schocher <hs@pollux.denx.de>

IDE: - make ide_inb () and ide_outb () "weak", so boards can
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>


# eb867a76 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write 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>


# 735dd97b 20-Feb-2007 Grant Likely <grant.likely@secretlab.ca>

[PATCH 1_4] Merge common get_dev() routines for block devices

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>


# 42dfe7a1 14-Mar-2004 wdenk <wdenk>

Code cleanup; make several boards compile & link.


# c40b2956 13-Mar-2004 wdenk <wdenk>

* Patch by Rune Torgersen, 27 Feb 2004:
- 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"


# 0f9cfa09 27-Aug-2002 wdenk <wdenk>

Initial revision