blob: 0a6ab8c79e17af6dcaad26576d5f1e9f3faa6d36 [file] [log] [blame]
Andrew Scullfbc938a2018-08-20 14:09:28 +01001#pragma once
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +01002
3#include <stdbool.h>
4
Andrew Scull18c78fc2018-08-20 12:57:41 +01005#include "hf/mm.h"
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +01006
Andrew Walbran34ce72e2018-09-13 16:47:44 +01007#define MAX_MEM_RANGES 20
8
9struct mem_range {
10 paddr_t begin;
11 paddr_t end;
12};
13
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +010014struct boot_params {
Andrew Walbran34ce72e2018-09-13 16:47:44 +010015 struct mem_range mem_ranges[MAX_MEM_RANGES];
16 size_t mem_ranges_count;
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +010017 paddr_t initrd_begin;
18 paddr_t initrd_end;
19 size_t kernel_arg;
20};
21
22struct boot_params_update {
Andrew Walbran34ce72e2018-09-13 16:47:44 +010023 struct mem_range reserved_ranges[MAX_MEM_RANGES];
24 size_t reserved_ranges_count;
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +010025 paddr_t initrd_begin;
26 paddr_t initrd_end;
27};
28
29bool plat_get_boot_params(struct boot_params *p);
30bool plat_update_boot_params(struct boot_params_update *p);