This commit is contained in:
Vladimir Serbinenko committed 2016-02-21 20:28:10 +01:00
1 parent dc491ff04a
commit 0b71582111
5 files changed
+27 -3

No files matched your search

+3
View File
@@ -246,6 +246,9 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h
endif endif
if COND_arm_efi if COND_arm_efi
+2 -2
View File
@@ -1675,7 +1675,7 @@ module = {
arm64 = loader/arm64/xen_boot.c; arm64 = loader/arm64/xen_boot.c;
enable = arm64; enable = arm64;
}; };
/*
module = { module = {
name = linux; name = linux;
x86 = loader/i386/linux.c; x86 = loader/i386/linux.c;
@@ -1691,7 +1691,7 @@ module = {
common = lib/cmdline.c; common = lib/cmdline.c;
enable = noemu; enable = noemu;
}; };
*/
module = { module = {
name = fdt; name = fdt;
arm64 = loader/arm64/fdt.c; arm64 = loader/arm64/fdt.c;
+4
View File
@@ -38,6 +38,7 @@
extern grub_uint8_t _start[]; extern grub_uint8_t _start[];
extern grub_uint8_t _end[]; extern grub_uint8_t _end[];
extern grub_uint8_t _edata[]; extern grub_uint8_t _edata[];
grub_addr_t start_of_ram = ~(grub_addr_t)0;
void __attribute__ ((noreturn)) void __attribute__ ((noreturn))
grub_exit (void) grub_exit (void)
@@ -66,6 +67,9 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type,
end = GRUB_ULONG_MAX; end = GRUB_ULONG_MAX;
#endif #endif
if (start_of_ram > begin)
start_of_ram = begin;
if (type != GRUB_MEMORY_AVAILABLE) if (type != GRUB_MEMORY_AVAILABLE)
return 0; return 0;
+1
View File
@@ -34,6 +34,7 @@ struct grub_fdt_board
extern struct grub_fdt_board grub_fdt_boards[]; extern struct grub_fdt_board grub_fdt_boards[];
void grub_machine_timer_init (void); void grub_machine_timer_init (void);
void grub_pl050_init (void); void grub_pl050_init (void);
extern grub_addr_t EXPORT_VAR (start_of_ram);
#endif /* ! ASM_FILE */ #endif /* ! ASM_FILE */
#define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE #define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE
+17 -1
View File
@@ -25,7 +25,7 @@
#include "system.h" #include "system.h"
#if defined (GRUB_MACHINE_UBOOT) || defined (GRUB_MACHINE_COREBOOT) #if defined (GRUB_MACHINE_UBOOT)
# include <grub/uboot/uboot.h> # include <grub/uboot/uboot.h>
# define LINUX_ADDRESS (start_of_ram + 0x8000) # define LINUX_ADDRESS (start_of_ram + 0x8000)
# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000) # define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
@@ -50,6 +50,22 @@ grub_arm_firmware_get_machine_type (void)
{ {
return GRUB_ARM_MACHINE_TYPE_FDT; return GRUB_ARM_MACHINE_TYPE_FDT;
} }
#elif defined (GRUB_MACHINE_COREBOOT)
#include <grub/fdtbus.h>
#include <grub/machine/kernel.h>
# define LINUX_ADDRESS (start_of_ram + 0x8000)
# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
# define LINUX_FDT_ADDRESS (LINUX_INITRD_ADDRESS - 0x10000)
static inline const void *
grub_arm_firmware_get_boot_data (void)
{
return grub_fdtbus_get_fdt ();
}
static inline grub_uint32_t
grub_arm_firmware_get_machine_type (void)
{
return GRUB_ARM_MACHINE_TYPE_FDT;
}
#endif #endif
#define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300