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: Andreas Bießmann <biessmann@corscience.de>
This commit is contained in:
parent
a950c81851
commit
24890f1198
@ -107,6 +107,13 @@ struct tag_ethernet {
|
||||
|
||||
#define AETH_INVALID_PHY 0xff
|
||||
|
||||
/* board information information */
|
||||
#define ATAG_BOARDINFO 0x54410008
|
||||
|
||||
struct tag_boardinfo {
|
||||
u32 board_number;
|
||||
};
|
||||
|
||||
struct tag {
|
||||
struct tag_header hdr;
|
||||
union {
|
||||
@ -115,6 +122,7 @@ struct tag {
|
||||
struct tag_cmdline cmdline;
|
||||
struct tag_clock clock;
|
||||
struct tag_ethernet ethernet;
|
||||
struct tag_boardinfo boardinfo;
|
||||
} u;
|
||||
};
|
||||
|
||||
|
@ -165,6 +165,16 @@ static struct tag *setup_ethernet_tags(struct tag *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)
|
||||
{
|
||||
params->hdr.tag = ATAG_NONE;
|
||||
@ -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_clock_tags(params);
|
||||
params = setup_ethernet_tags(params);
|
||||
params = setup_boardinfo_tag(params);
|
||||
setup_end_tag(params);
|
||||
|
||||
printf("\nStarting kernel at %p (params at %p)...\n\n",
|
||||
|
Loading…
Reference in New Issue
Block a user