Skip to content
Snippets Groups Projects
Commit 24890f11 authored by Andreas Bießmann's avatar Andreas Bießmann Committed by Albert ARIBAUD
Browse files

avr32: add ATAG_BOARDINFO


This patch adds a new ATAG_BORADINFO to U-Boot. This tag is intended to hand
over the bd->bi_board_number to the linux kernel for early stage board
information like a board revision or other kind of board specific decisions
necessary before the linux peripherial drivers are up.

Signed-off-by: default avatarAndreas Bießmann <biessmann@corscience.de>
parent a950c818
No related branches found
No related tags found
No related merge requests found
...@@ -107,6 +107,13 @@ struct tag_ethernet { ...@@ -107,6 +107,13 @@ struct tag_ethernet {
#define AETH_INVALID_PHY 0xff #define AETH_INVALID_PHY 0xff
/* board information information */
#define ATAG_BOARDINFO 0x54410008
struct tag_boardinfo {
u32 board_number;
};
struct tag { struct tag {
struct tag_header hdr; struct tag_header hdr;
union { union {
...@@ -115,6 +122,7 @@ struct tag { ...@@ -115,6 +122,7 @@ struct tag {
struct tag_cmdline cmdline; struct tag_cmdline cmdline;
struct tag_clock clock; struct tag_clock clock;
struct tag_ethernet ethernet; struct tag_ethernet ethernet;
struct tag_boardinfo boardinfo;
} u; } u;
}; };
......
...@@ -165,6 +165,16 @@ static struct tag *setup_ethernet_tags(struct tag *params) ...@@ -165,6 +165,16 @@ static struct tag *setup_ethernet_tags(struct tag *params)
return params; return params;
} }
static struct tag *setup_boardinfo_tag(struct tag *params)
{
params->hdr.tag = ATAG_BOARDINFO;
params->hdr.size = tag_size(tag_boardinfo);
params->u.boardinfo.board_number = gd->bd->bi_board_number;
return tag_next(params);
}
static void setup_end_tag(struct tag *params) static void setup_end_tag(struct tag *params)
{ {
params->hdr.tag = ATAG_NONE; params->hdr.tag = ATAG_NONE;
...@@ -195,6 +205,7 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima ...@@ -195,6 +205,7 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima
params = setup_commandline_tag(params, commandline); params = setup_commandline_tag(params, commandline);
params = setup_clock_tags(params); params = setup_clock_tags(params);
params = setup_ethernet_tags(params); params = setup_ethernet_tags(params);
params = setup_boardinfo_tag(params);
setup_end_tag(params); setup_end_tag(params);
printf("\nStarting kernel at %p (params at %p)...\n\n", printf("\nStarting kernel at %p (params at %p)...\n\n",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment