[U-Boot] Proposed fastboot changes

I've made some changes to the fastboot handlers to meet my needs. If there is interest, I can prepare patches and submit them upstream. The changes are:
BUGFIX: Currently the 'fastboot format [partition]' command (run from PC) formats the partition smaller than expected. Change getvar_partition_size() to return partition size in # of bytes instead of the current behavior of # of blocks. The 'fastboot format [partition]' command expect u-boot to return the size in number of bytes in order to format the partition correctly.
Make the a fastboot oem command handler with a dynamic lookup like the base fastboot command handler currently is. This would allow easily adding new oem commands in the baseline software (such as below). It would also allow for board files to extend the oem handler to handle OEM specific cases. I would use a weakly defined default oem command handler (empty function) which a board file can optionally override to handle board specific commands.
Currently the 'fastboot oem format' command (gpt write mmc # $partitions) is supported. I'd like to add a 'fastboot oem verify' (gpt verify mmc # $partitions) to help the flashing PC detect when a board needs to be re-formatted.
-Doug

On Mon, Jan 14, 2019 at 8:49 PM Douglas Zobel douglas.zobel@climate.com wrote:
I've made some changes to the fastboot handlers to meet my needs. If there is interest, I can prepare patches and submit them upstream. The changes are:
BUGFIX: Currently the 'fastboot format [partition]' command (run from PC) formats the partition smaller than expected. Change getvar_partition_size() to return partition size in # of bytes instead of the current behavior of # of blocks. The 'fastboot format [partition]' command expect u-boot to return the size in number of bytes in order to format the partition correctly.
Make the a fastboot oem command handler with a dynamic lookup like the base fastboot command handler currently is. This would allow easily adding new oem commands in the baseline software (such as below). It would also allow for board files to extend the oem handler to handle OEM specific cases. I would use a weakly defined default oem command handler (empty function) which a board file can optionally override to handle board specific commands.
Currently the 'fastboot oem format' command (gpt write mmc # $partitions) is supported. I'd like to add a 'fastboot oem verify' (gpt verify mmc # $partitions) to help the flashing PC detect when a board needs to be re-formatted.
I'd no need for it, but when I did all of the changes to add UDP support, my intention was that you'd implement oem command using linker lists, at that point you can plug in whatever you need.

On Tue, Jan 15, 2019 at 4:12 AM Alex Kiernan alex.kiernan@gmail.com wrote:
On Mon, Jan 14, 2019 at 8:49 PM Douglas Zobel douglas.zobel@climate.com wrote:
I've made some changes to the fastboot handlers to meet my needs. If
there is interest, I can prepare patches and submit them upstream. The changes are:
BUGFIX: Currently the 'fastboot format [partition]' command (run from
PC) formats the partition smaller than expected. Change getvar_partition_size() to return partition size in # of bytes instead of the current behavior of # of blocks. The 'fastboot format [partition]' command expect u-boot to return the size in number of bytes in order to format the partition correctly.
Make the a fastboot oem command handler with a dynamic lookup like the
base fastboot command handler currently is. This would allow easily adding new oem commands in the baseline software (such as below). It would also allow for board files to extend the oem handler to handle OEM specific cases. I would use a weakly defined default oem command handler (empty function) which a board file can optionally override to handle board specific commands.
Currently the 'fastboot oem format' command (gpt write mmc #
$partitions) is supported. I'd like to add a 'fastboot oem verify' (gpt verify mmc # $partitions) to help the flashing PC detect when a board needs to be re-formatted.
I'd no need for it, but when I did all of the changes to add UDP support, my intention was that you'd implement oem command using linker lists, at that point you can plug in whatever you need.
I don't understand what you mean by linker lists. Can you give an example?

On Tue, Jan 15, 2019 at 11:04 PM Douglas Zobel douglas.zobel@climate.com wrote:
On Tue, Jan 15, 2019 at 4:12 AM Alex Kiernan alex.kiernan@gmail.com wrote:
On Mon, Jan 14, 2019 at 8:49 PM Douglas Zobel douglas.zobel@climate.com wrote:
I've made some changes to the fastboot handlers to meet my needs. If there is interest, I can prepare patches and submit them upstream. The changes are:
BUGFIX: Currently the 'fastboot format [partition]' command (run from PC) formats the partition smaller than expected. Change getvar_partition_size() to return partition size in # of bytes instead of the current behavior of # of blocks. The 'fastboot format [partition]' command expect u-boot to return the size in number of bytes in order to format the partition correctly.
Make the a fastboot oem command handler with a dynamic lookup like the base fastboot command handler currently is. This would allow easily adding new oem commands in the baseline software (such as below). It would also allow for board files to extend the oem handler to handle OEM specific cases. I would use a weakly defined default oem command handler (empty function) which a board file can optionally override to handle board specific commands.
Currently the 'fastboot oem format' command (gpt write mmc # $partitions) is supported. I'd like to add a 'fastboot oem verify' (gpt verify mmc # $partitions) to help the flashing PC detect when a board needs to be re-formatted.
I'd no need for it, but when I did all of the changes to add UDP support, my intention was that you'd implement oem command using linker lists, at that point you can plug in whatever you need.
I don't understand what you mean by linker lists. Can you give an example?
The most obvious example is the command handling in U-Boot - include/command.h and the macro U_BOOT_CMD_MKENT. The definitions for linker lists themselves are in include/linker_lists.h.
participants (2)
-
Alex Kiernan
-
Douglas Zobel