flash: nor: ath79: remove base calculation 21/4821/3
authorOleksij Rempel <linux@rempel-privat.de>
Wed, 26 Dec 2018 11:47:11 +0000 (12:47 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Wed, 2 Jan 2019 21:53:41 +0000 (21:53 +0000)
Currently it is impossible to flash ELF with correct offsets. The reason
is a bogus offset calculation extracted from base.
Since any other spi drivers do not care about base, do the same for
ath79 as well.

Change-Id: I9e46e01c9e7a709c2d07da9203c634f302603afd
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Reviewed-on: http://openocd.zylin.com/4821
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
doc/openocd.texi
src/flash/nor/ath79.c
tcl/board/8devices-lima.cfg
tcl/board/dptechnics_dpt-board-v1.cfg
tcl/board/tp-link_tl-mr3020.cfg
tcl/board/tp-link_wdr4300.cfg

index 83f6052..21b55dc 100644 (file)
@@ -5347,12 +5347,12 @@ since the alternate function must be enabled on the GPIO pin
 CS1/CS2 is routed to on the given SoC.
 
 @example
-flash bank $_FLASHNAME ath79 0 0 0 0 $_TARGETNAME
+flash bank $_FLASHNAME ath79 0xbf000000 0 0 0 $_TARGETNAME
 
 # When using multiple chipselects the base should be different for each,
 # otherwise the write_image command is not able to distinguish the
 # banks.
-flash bank flash0 ath79 0x00000000 0 0 0 $_TARGETNAME cs0
+flash bank flash0 ath79 0xbf000000 0 0 0 $_TARGETNAME cs0
 flash bank flash1 ath79 0x10000000 0 0 0 $_TARGETNAME cs1
 flash bank flash2 ath79 0x20000000 0 0 0 $_TARGETNAME cs2
 @end example
index d73a491..520f6c5 100644 (file)
@@ -653,13 +653,6 @@ static int ath79_write(struct flash_bank *bank, const uint8_t *buffer,
        LOG_DEBUG("%s: offset=0x%08" PRIx32 " count=0x%08" PRIx32,
                  __func__, offset, count);
 
-       if (offset < bank->base || offset >= bank->base + bank->size) {
-               LOG_ERROR("Start address out of range");
-               return ERROR_FAIL;
-       }
-
-       offset -= bank->base;
-
        if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
@@ -729,13 +722,6 @@ static int ath79_read(struct flash_bank *bank, uint8_t *buffer,
        LOG_DEBUG("%s: offset=0x%08" PRIx32 " count=0x%08" PRIx32,
                  __func__, offset, count);
 
-       if (offset < bank->base || offset >= bank->base + bank->size) {
-               LOG_ERROR("Start address out of range");
-               return ERROR_FAIL;
-       }
-
-       offset -= bank->base;
-
        if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
index 136f861..0d35cfb 100644 (file)
@@ -27,4 +27,4 @@ $_TARGETNAME configure -event reset-init {
 set ram_boot_address 0xa0000000
 $_TARGETNAME configure -work-area-phys 0xa1FFE000 -work-area-size 0x1000
 
-flash bank flash0 ath79 0 0 0 0 $_TARGETNAME cs0
+flash bank flash0 ath79 0xbf000000 0 0 0 $_TARGETNAME cs0
index de31c7c..21470b0 100644 (file)
@@ -29,4 +29,4 @@ $_TARGETNAME configure -event reset-init {
 set ram_boot_address 0xa0000000
 $_TARGETNAME configure -work-area-phys 0xa1FFE000 -work-area-size 0x1000
 
-flash bank flash0 ath79 0 0 0 0 $_TARGETNAME cs0
+flash bank flash0 ath79 0xbf000000 0 0 0 $_TARGETNAME cs0
index 48fb698..366bec8 100644 (file)
@@ -9,4 +9,4 @@ $_TARGETNAME configure -event reset-init {
 set ram_boot_address 0xa0000000
 $_TARGETNAME configure -work-area-phys 0xa1FFE000 -work-area-size 0x1000
 
-flash bank flash0 ath79 0 0 0 0 $_TARGETNAME cs0
+flash bank flash0 ath79 0xbf000000 0 0 0 $_TARGETNAME cs0
index c317916..7aa79ab 100644 (file)
@@ -157,4 +157,4 @@ $_TARGETNAME configure -event reset-init {
 set ram_boot_address 0xa0000000
 $_TARGETNAME configure -work-area-phys 0x1d000000 -work-area-size 0x1000
 
-flash bank flash0 ath79 0 0 0 0 $_TARGETNAME cs0
+flash bank flash0 ath79 0xbf000000 0 0 0 $_TARGETNAME cs0