[PATCH] include: configs: Change dtb names in fitImage to match oe-core

The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com --- include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \ - "setenv fdtfile k3-am642-evm.dtb; fi; " \ + "setenv fdtfile ti_k3-am642-evm.dtb; fi; " \ "if test $board_name = am64x_skevm; then " \ - "setenv fdtfile k3-am642-sk.dtb; fi;" \ + "setenv fdtfile ti_k3-am642-sk.dtb; fi;" \ "if test $fdtfile = undefined; then " \ "echo WARNING: Could not determine device tree to use; fi; \0" \ "name_kern=Image\0" \ diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h index 33dd6cfdfa..60a7eb1453 100644 --- a/include/configs/am65x_evm.h +++ b/include/configs/am65x_evm.h @@ -24,7 +24,7 @@ /* U-Boot general configuration */ #define EXTRA_ENV_AM65X_BOARD_SETTINGS \ "findfdt=" \ - "setenv name_fdt k3-am654-base-board.dtb;" \ + "setenv name_fdt ti_k3-am654-base-board.dtb;" \ "setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \ diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index 48b1cea6e3..eac5cd5b76 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -34,11 +34,11 @@ #define EXTRA_ENV_J721E_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \ - "setenv name_fdt ${default_device_tree};" \ + "setenv name_fdt ti_${default_device_tree};" \ "if test $board_name = j721e; then " \ - "setenv name_fdt k3-j721e-common-proc-board.dtb; fi;" \ + "setenv name_fdt ti_k3-j721e-common-proc-board.dtb; fi;" \ "if test $board_name = j721e-eaik || test $board_name = j721e-sk; then " \ - "setenv name_fdt k3-j721e-sk.dtb; fi;" \ + "setenv name_fdt ti_k3-j721e-sk.dtb; fi;" \ "setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \ diff --git a/include/configs/j721s2_evm.h b/include/configs/j721s2_evm.h index bfada9eebc..b30a4a8da4 100644 --- a/include/configs/j721s2_evm.h +++ b/include/configs/j721s2_evm.h @@ -31,11 +31,11 @@ #define EXTRA_ENV_J721S2_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \ - "setenv name_fdt ${default_device_tree};" \ + "setenv name_fdt ti_${default_device_tree};" \ "if test $board_name = j721s2; then " \ - "setenv name_fdt k3-j721s2-common-proc-board.dtb; fi;" \ + "setenv name_fdt ti_k3-j721s2-common-proc-board.dtb; fi;" \ "if test $board_name = am68-sk; then " \ - "setenv name_fdt k3-am68-sk-base-board.dtb; fi;"\ + "setenv name_fdt ti_k3-am68-sk-base-board.dtb; fi;"\ "setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \

On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"if test $board_name = am64x_skevm; then " \"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
"if test $fdtfile = undefined; then " \ "echo WARNING: Could not determine device tree to use; fi; \0" \
"name_kern=Image\0" \ diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h index 33dd6cfdfa..60a7eb1453 100644 --- a/include/configs/am65x_evm.h +++ b/include/configs/am65x_evm.h @@ -24,7 +24,7 @@ /* U-Boot general configuration */ #define EXTRA_ENV_AM65X_BOARD_SETTINGS \ "findfdt=" \
"setenv name_fdt k3-am654-base-board.dtb;" \
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-am654-base-board.dtb;" \
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index 48b1cea6e3..eac5cd5b76 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -34,11 +34,11 @@ #define EXTRA_ENV_J721E_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \
"setenv name_fdt ${default_device_tree};" \
"if test $board_name = j721e; then " \"setenv name_fdt ti_${default_device_tree};" \
"setenv name_fdt k3-j721e-common-proc-board.dtb; fi;" \
"if test $board_name = j721e-eaik || test $board_name = j721e-sk; then " \"setenv name_fdt ti_k3-j721e-common-proc-board.dtb; fi;" \
"setenv name_fdt k3-j721e-sk.dtb; fi;" \
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-j721e-sk.dtb; fi;" \
diff --git a/include/configs/j721s2_evm.h b/include/configs/j721s2_evm.h index bfada9eebc..b30a4a8da4 100644 --- a/include/configs/j721s2_evm.h +++ b/include/configs/j721s2_evm.h @@ -31,11 +31,11 @@ #define EXTRA_ENV_J721S2_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \
"setenv name_fdt ${default_device_tree};" \
"if test $board_name = j721s2; then " \"setenv name_fdt ti_${default_device_tree};" \
"setenv name_fdt k3-j721s2-common-proc-board.dtb; fi;" \
"if test $board_name = am68-sk; then " \"setenv name_fdt ti_k3-j721s2-common-proc-board.dtb; fi;" \
"setenv name_fdt k3-am68-sk-base-board.dtb; fi;"\
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-am68-sk-base-board.dtb; fi;"\
-- 2.17.1

On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"if test $board_name = am64x_skevm; then " \"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
Andrew
"if test $fdtfile = undefined; then " \ "echo WARNING: Could not determine device tree to use; fi; \0" \
"name_kern=Image\0" \ diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h index 33dd6cfdfa..60a7eb1453 100644 --- a/include/configs/am65x_evm.h +++ b/include/configs/am65x_evm.h @@ -24,7 +24,7 @@ /* U-Boot general configuration */ #define EXTRA_ENV_AM65X_BOARD_SETTINGS \ "findfdt=" \
"setenv name_fdt k3-am654-base-board.dtb;" \
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-am654-base-board.dtb;" \
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index 48b1cea6e3..eac5cd5b76 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -34,11 +34,11 @@ #define EXTRA_ENV_J721E_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \
"setenv name_fdt ${default_device_tree};" \
"if test $board_name = j721e; then " \"setenv name_fdt ti_${default_device_tree};" \
"setenv name_fdt k3-j721e-common-proc-board.dtb; fi;" \
"if test $board_name = j721e-eaik || test $board_name = j721e-sk; then " \"setenv name_fdt ti_k3-j721e-common-proc-board.dtb; fi;" \
"setenv name_fdt k3-j721e-sk.dtb; fi;" \
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-j721e-sk.dtb; fi;" \
diff --git a/include/configs/j721s2_evm.h b/include/configs/j721s2_evm.h index bfada9eebc..b30a4a8da4 100644 --- a/include/configs/j721s2_evm.h +++ b/include/configs/j721s2_evm.h @@ -31,11 +31,11 @@ #define EXTRA_ENV_J721S2_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "findfdt=" \
"setenv name_fdt ${default_device_tree};" \
"if test $board_name = j721s2; then " \"setenv name_fdt ti_${default_device_tree};" \
"setenv name_fdt k3-j721s2-common-proc-board.dtb; fi;" \
"if test $board_name = am68-sk; then " \"setenv name_fdt ti_k3-j721s2-common-proc-board.dtb; fi;" \
"setenv name_fdt k3-am68-sk-base-board.dtb; fi;"\
"setenv fdtfile ${name_fdt}\0" \ "name_kern=Image\0" \ "console=ttyS2,115200n8\0" \"setenv name_fdt ti_k3-am68-sk-base-board.dtb; fi;"\
-- 2.17.1

On Fri, Mar 31, 2023 at 12:19:14PM -0500, Andrew Davis wrote:
On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"if test $board_name = am64x_skevm; then " \"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
The key here is we're talking about what's used in FIT images, and not just loaded directly. All of the cases where fdtfile is used on arm64 platforms in tree today use "/" because it's loading a literal. In this case, why again is OE mangling the name, and what are we using it for again here? In other words, why can't it be treated as "/" to match the load a file case? And if it _must_ be mangled, must we still use fdtfile and not something else?

On 3/31/23 1:11 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 12:19:14PM -0500, Andrew Davis wrote:
On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \ "if test $board_name = am64x_skevm; then " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
The key here is we're talking about what's used in FIT images, and not just loaded directly. All of the cases where fdtfile is used on arm64 platforms in tree today use "/" because it's loading a literal. In this case, why again is OE mangling the name, and what are we using it for again here? In other words, why can't it be treated as "/" to match the load a file case? And if it _must_ be mangled, must we still use fdtfile and not something else?
So to match other plats, we should:
setenv fdtfile ti/k3-am642-sk.dtb
That way loading works in the non-FIT case (and we just need to stop moving all the DTBs out of the ti/ to the root dir (which is probably broken on our part anyway..))
Then when we use "fdtfile" in the FIT case, we just mangle ("/"->"_") it at that point only before use. That work for everyone?
Andrew

On Fri, Mar 31, 2023 at 01:23:23PM -0500, Andrew Davis wrote:
On 3/31/23 1:11 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 12:19:14PM -0500, Andrew Davis wrote:
On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \ "if test $board_name = am64x_skevm; then " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
The key here is we're talking about what's used in FIT images, and not just loaded directly. All of the cases where fdtfile is used on arm64 platforms in tree today use "/" because it's loading a literal. In this case, why again is OE mangling the name, and what are we using it for again here? In other words, why can't it be treated as "/" to match the load a file case? And if it _must_ be mangled, must we still use fdtfile and not something else?
So to match other plats, we should:
setenv fdtfile ti/k3-am642-sk.dtb
That way loading works in the non-FIT case (and we just need to stop moving all the DTBs out of the ti/ to the root dir (which is probably broken on our part anyway..))
Yes, this sounds right for the non-FIT case to match other platforms / etc.
Then when we use "fdtfile" in the FIT case, we just mangle ("/"->"_") it at that point only before use. That work for everyone?
Well, what _is_ the FIT case and how does it go exactly? I still want to know why we're mangling things and come up with something that'll work for when someone says "I've got an imx8mm and I'm using a FIT image from OE and this doesn't work!".

On 3/31/23 1:36 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 01:23:23PM -0500, Andrew Davis wrote:
On 3/31/23 1:11 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 12:19:14PM -0500, Andrew Davis wrote:
On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote:
The oe-core class for assembling the fitImage includes the vendor sub-directory (with the / changed to _) in the config sections of the fitImage. Our env var settings for chosing which section to boot from needs to be updated to agree with the fitImage.
Signed-off-by: Ryan Eatmon reatmon@ti.com
include/configs/am64x_evm.h | 4 ++-- include/configs/am65x_evm.h | 2 +- include/configs/j721e_evm.h | 6 +++--- include/configs/j721s2_evm.h | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index 26a7f2521e..456a44730c 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -26,9 +26,9 @@ #define EXTRA_ENV_AM642_BOARD_SETTINGS \ "findfdt=" \ "if test $board_name = am64x_gpevm; then " \
"setenv fdtfile k3-am642-evm.dtb; fi; " \
"setenv fdtfile ti_k3-am642-evm.dtb; fi; " \ "if test $board_name = am64x_skevm; then " \
"setenv fdtfile k3-am642-sk.dtb; fi;" \
"setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
The key here is we're talking about what's used in FIT images, and not just loaded directly. All of the cases where fdtfile is used on arm64 platforms in tree today use "/" because it's loading a literal. In this case, why again is OE mangling the name, and what are we using it for again here? In other words, why can't it be treated as "/" to match the load a file case? And if it _must_ be mangled, must we still use fdtfile and not something else?
So to match other plats, we should:
setenv fdtfile ti/k3-am642-sk.dtb
That way loading works in the non-FIT case (and we just need to stop moving all the DTBs out of the ti/ to the root dir (which is probably broken on our part anyway..))
Yes, this sounds right for the non-FIT case to match other platforms / etc.
Then when we use "fdtfile" in the FIT case, we just mangle ("/"->"_") it at that point only before use. That work for everyone?
Well, what _is_ the FIT case and how does it go exactly? I still want to know why we're mangling things and come up with something that'll work for when someone says "I've got an imx8mm and I'm using a FIT image from OE and this doesn't work!".
So what happens is when OE is packaging a dtb file into the FIT image it names the node based on the dtb filename. Node names can't have / so it is turned into _ [0]. We select our FIT config using the "fdtfile" env var so we don't duplicate the above board_name to fdt logic. Result is fdtfile needs mangled when used to select a config node from OE made FIT image.
Andrew
[0] https://git.openembedded.org/openembedded-core/tree/meta/classes-recipe/kern...

On Fri, Mar 31, 2023 at 01:52:44PM -0500, Andrew Davis wrote:
On 3/31/23 1:36 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 01:23:23PM -0500, Andrew Davis wrote:
On 3/31/23 1:11 PM, Tom Rini wrote:
On Fri, Mar 31, 2023 at 12:19:14PM -0500, Andrew Davis wrote:
On 3/31/23 12:04 PM, Nishanth Menon wrote:
On 16:06-20230330, Ryan Eatmon wrote: > The oe-core class for assembling the fitImage includes the vendor > sub-directory (with the / changed to _) in the config sections of > the fitImage. Our env var settings for chosing which section to > boot from needs to be updated to agree with the fitImage. > > Signed-off-by: Ryan Eatmon reatmon@ti.com > --- > include/configs/am64x_evm.h | 4 ++-- > include/configs/am65x_evm.h | 2 +- > include/configs/j721e_evm.h | 6 +++--- > include/configs/j721s2_evm.h | 6 +++--- > 4 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h > index 26a7f2521e..456a44730c 100644 > --- a/include/configs/am64x_evm.h > +++ b/include/configs/am64x_evm.h > @@ -26,9 +26,9 @@ > #define EXTRA_ENV_AM642_BOARD_SETTINGS \ > "findfdt=" \ > "if test $board_name = am64x_gpevm; then " \ > - "setenv fdtfile k3-am642-evm.dtb; fi; " \ > + "setenv fdtfile ti_k3-am642-evm.dtb; fi; " \ > "if test $board_name = am64x_skevm; then " \ > - "setenv fdtfile k3-am642-sk.dtb; fi;" \ > + "setenv fdtfile ti_k3-am642-sk.dtb; fi;" \
Kernel.org builds k3-am642-sk.dtb
Nope, kernel.org build ti/k3-am642-sk.dtb
Why would we want to go and fix it with non-standard?
The dtbs need to have their dir prefixed or there could be collisions
The key here is we're talking about what's used in FIT images, and not just loaded directly. All of the cases where fdtfile is used on arm64 platforms in tree today use "/" because it's loading a literal. In this case, why again is OE mangling the name, and what are we using it for again here? In other words, why can't it be treated as "/" to match the load a file case? And if it _must_ be mangled, must we still use fdtfile and not something else?
So to match other plats, we should:
setenv fdtfile ti/k3-am642-sk.dtb
That way loading works in the non-FIT case (and we just need to stop moving all the DTBs out of the ti/ to the root dir (which is probably broken on our part anyway..))
Yes, this sounds right for the non-FIT case to match other platforms / etc.
Then when we use "fdtfile" in the FIT case, we just mangle ("/"->"_") it at that point only before use. That work for everyone?
Well, what _is_ the FIT case and how does it go exactly? I still want to know why we're mangling things and come up with something that'll work for when someone says "I've got an imx8mm and I'm using a FIT image from OE and this doesn't work!".
So what happens is when OE is packaging a dtb file into the FIT image it names the node based on the dtb filename. Node names can't have / so it is turned into _ [0]. We select our FIT config using the "fdtfile" env var so we don't duplicate the above board_name to fdt logic. Result is fdtfile needs mangled when used to select a config node from OE made FIT image.
OK, so the next step would be to use setexpr + regex to mangle fdtfile to get the node name to use, so you don't have to duplicate the logic.
participants (4)
-
Andrew Davis
-
Nishanth Menon
-
Ryan Eatmon
-
Tom Rini