Skip to contentSkip to conversation

make the machid configurable via the environment (Was: [PATCH] Changed load address and entry point for uImage to ZRELADDR + 6MB)

PATCH New Uwe Kleine-König 5 participants 9 messages Jan 30, 2008 – Feb 14, 2008 9 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

#9 lore raw

PATCH 1/1 make the machid configurable via the environment (Was: [PATCH] Changed load address and entry point for uImage to ZRELADDR + 6MB)

Hello Nicolas,

Quoted 8 lines · Nicolas Pitre
Quoted 4 lines

But does U-Boot properly provide machine information to the kernel these days? I have been and still being burned by U-Boot hardcoding the _wrong_ machine ID, and therefore custom built kernels from k.o simply won't boot on those boards without hacking the kernel source.

With "our" U-Boot you can override the compiled-in machid with an environment variable. I didn't implement this patch but I think it's not that difficult. I will check tomorrow if I can easily get a patch out of our scm.

It took a bit longer, but here it comes. This is on top of todays u-boot.

I didn't tested this patch in that version, but this is how it is done in our version of U-Boot (that is considerable older).

Switching the machid is also very convenient because we have modules that can be plugged on different base boards and so can use different machids.

Best regards
Uwe

--->8---
From: Uwe Kleine-K?nig <[email protected]>

make the machid configurable via the environment

If the variable "machid" exists, let do_bootm_linux use that instead of bd->bi_arch_number.

---
 lib_arm/armlinux.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
lib_arm/armlinux.c +9 -1
index 6d32a41..62185f0 100644
@@ -78,6 +78,8 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 	void (*theKernel)(int zero, int arch, uint params);
 	image_header_t *hdr = &header;
 	bd_t *bd = gd->bd;
+	int machid = bd->bi_arch_number;
+	char *s;
 
 #ifdef CONFIG_CMDLINE_TAG
 	char *commandline = getenv ("bootargs");
@@ -85,6 +87,12 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 
 	theKernel = (void (*)(int, int, uint))ntohl(hdr->ih_ep);
 
+	s = getenv ("machid");
+	if (s) {
+		machid = simple_strtoul (s, NULL, 16);
+		printf ("Using machid 0x%x from environment\n", machid);
+	}
+
 	/*
 	 * Check if there is an initrd image
 	 */
@@ -260,7 +268,7 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 
 	cleanup_before_linux ();
 
-	theKernel (0, bd->bi_arch_number, bd->bi_boot_params);
+	theKernel (0, machid, bd->bi_boot_params);
 }
 
 
Signature · 7 lines
1.5.3.8


-- 
Uwe Kleine-K?nig, Software Engineer
Digi International GmbH Branch Breisach, K?ferstrasse 8, 79206 Breisach, Germany
Tax: 315/5781/0242 / VAT: DE153662976 / Reg. Amtsgericht Dortmund HRB 13962
#10 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

Quoted 8 lines · Nicolas Pitre
Quoted 4 lines

But does U-Boot properly provide machine information to the kernel these days? I have been and still being burned by U-Boot hardcoding the _wrong_ machine ID, and therefore custom built kernels from k.o simply won't boot on those boards without hacking the kernel source.

With "our" U-Boot you can override the compiled-in machid with an environment variable. I didn't implement this patch but I think it's not that difficult. I will check tomorrow if I can easily get a patch out of our scm.

I proposed this patch for a long time, but it was rejected by Wolfgang.

I am seeing multiple companies implementing small CPU modules incorporating CPU + FPGA, and the customers will adopt the FPGA code for their own need, and then they need to create a new machine id.

Having such a patch will allow people in this situation to use the U-Boot on the board without recompilation.

Best Regards
Ulf Samuelsson

#11 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

Quoted 11 lines · Ulf Samuelsson
Quoted 8 lines · Nicolas Pitre
Quoted 4 lines

But does U-Boot properly provide machine information to the kernel these days? I have been and still being burned by U-Boot hardcoding the _wrong_ machine ID, and therefore custom built kernels from k.o simply won't boot on those boards without hacking the kernel source.

With "our" U-Boot you can override the compiled-in machid with an environment variable. I didn't implement this patch but I think it's not that difficult. I will check tomorrow if I can easily get a patch out of our scm.

I proposed this patch for a long time, but it was rejected by Wolfgang.

And may Wolfgang explain just why?

Quoted 6 lines

I am seeing multiple companies implementing small CPU modules incorporating CPU + FPGA, and the customers will adopt the FPGA code for their own need, and then they need to create a new machine id.

Having such a patch will allow people in this situation to use the U-Boot on the board without recompilation.

Yes, and it will considerably reduce the grundge against U-Boot from kernel people, myself included.

The current situation with U-Boot simply encourage people to put stupid hacks in the kernel instead in order to work around this U-Boot artificial limitation, which is not bringing any sympathy for better U-Boot support in the kernel build system amongst other things.

So I'm asking for Wolfgang to seriously reconsider accepting this patch.

Nicolas

#12 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

In reply to Ulf Samuelsson
Quoted 11 lines · Ulf Samuelsson
Quoted 8 lines · Nicolas Pitre
Quoted 4 lines

But does U-Boot properly provide machine information to the kernel these days? I have been and still being burned by U-Boot hardcoding the _wrong_ machine ID, and therefore custom built kernels from k.o simply won't boot on those boards without hacking the kernel source.

With "our" U-Boot you can override the compiled-in machid with an environment variable. I didn't implement this patch but I think it's not that difficult. I will check tomorrow if I can easily get a patch out of our scm.

I proposed this patch for a long time, but it was rejected by Wolfgang.

One solution to that problem is to have someone who maintains a separate tree for uboot which does have the feature in. Then it becomes a matter of community choice whether they use the official tree or the tree with sensible machine-id configurability.

That way, those who want the configurability can have it, and Wolfgang can avoid having his tree polluted with useful features he doesn't want.

#13 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

Quoted 10 lines · In message <[email protected]> you wrote:
Quoted 2 lines

I proposed this patch for a long time, but it was rejected by Wolfgang.

One solution to that problem is to have someone who maintains a separate tree for uboot which does have the feature in. Then it becomes a matter of community choice whether they use the official tree or the tree with sensible machine-id configurability.

That way, those who want the configurability can have it, and Wolfgang can avoid having his tree polluted with useful features he doesn't want.

Russel, are you by chance volunteering to become the custodian for the ARM related parts of U-Boot? Just let me know...

BTW: do you actually know what you are commenting about? Did you look up Ulf's proposal and the reject message in the U-Boot mailing list archive?

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
What is wanted is not the will to believe,  but the will to find out,
which is the exact opposite.
		        -- Bertrand Russell, "Skeptical Essays", 1928
#14 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

Quoted 9 lines · Wolfgang Denk
Quoted 8 lines · In message <[email protected]> you wrote:
Quoted 2 lines

I proposed this patch for a long time, but it was rejected by Wolfgang.

One solution to that problem is to have someone who maintains a separate tree for uboot which does have the feature in. Then it becomes a matter of community choice whether they use the official tree or the tree with sensible machine-id configurability.

Quoted 5 lines
Quoted 2 lines

That way, those who want the configurability can have it, and Wolfgang can avoid having his tree polluted with useful features he doesn't want.

Russel, are you by chance volunteering to become the custodian for the ARM related parts of U-Boot? Just let me know...

Wulfgage, no I am not.

Quoted 3 lines

BTW: do you actually know what you are commenting about? Did you look up Ulf's proposal and the reject message in the U-Boot mailing list archive?

Duh. I think everyone knows the answer to those questions who've seen my past comments on this subject - and it's plainly obvious what the answer to the second question is.

#15 lore raw

PATCH 1/1 make the machid configurable via theenvironment (Was: [PATCH] Changed load address and entrypoint for uImage to ZRELADDR + 6MB)

In reply to Ulf Samuelsson
Quoted 2 lines · In message <[email protected]> you wrote:

I proposed this patch for a long time, but it was rejected by Wolfgang.

Either you did it differently, or I changed my mind.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Due to lack of disk space, this fortune database has been discontinued.
#16 lore raw

PATCH 1/1 make the machid configurable via the environment (Was: [PATCH] Changed load address and entry point for uImage to ZRELADDR + 6MB)

In reply to Uwe Kleine-König
Quoted 9 lines · In message <[email protected]> you wrote:

From: Uwe Kleine-K=F6nig <[email protected]>

make the machid configurable via the environment

If the variable "machid" exists, let do_bootm_linux use that instead of bd->bi_arch_number.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"There are three principal ways to lose money: wine, women,  and  en-
gineers.  While  the first two are more pleasant, the third is by far
the more certain."                      -- Baron Rothschild, ca. 1800
#17 lore raw

PATCH 1/1 make the machid configurable via the environment (Was: [PATCH] Changed load address and entry point for uImage to ZRELADDR + 6MB)

In reply to Uwe Kleine-König
Quoted 10 lines · In message <[email protected]> you wrote:

make the machid configurable via the environment

If the variable "machid" exists, let do_bootm_linux use that instead of bd->bi_arch_number.

---
 lib_arm/armlinux.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If I don't document something, it's usually either for a good reason,
or a bad reason.  In this case it's a good reason.  :-)
                 - Larry Wall in <[email protected]>