rmodules: use rmodtool to create rmodules
Start using the rmodtool for generating rmodules. rmodule_link() has been changed to create 2 rules: one for the passed in <name>, the other for creating <name>.rmod which is an ELF file in the format of an rmodule. Since the header is not compiled and linked together with an rmodule there needs to be a way of marking which symbol is the entry point. __rmodule_entry is the symbol used for knowing the entry point. There was a little churn in SMM modules to ensure an rmodule entry point symbol takes a single argument. Change-Id: Ie452ed866f6596bf13f137f5b832faa39f48d26e Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/5379 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
This commit is contained in:
committed by
Stefan Reinauer
parent
4fde5a66b4
commit
3eb8eb7eba
@ -51,6 +51,7 @@ VB_INCLUDES += -I$(VB_SOURCE)/firmware/include
|
||||
INCLUDES += $(VB_INCLUDES)
|
||||
|
||||
VBOOT_STUB_ELF = $(obj)/vendorcode/google/chromeos/vbootstub.elf
|
||||
VBOOT_STUB = $(VBOOT_STUB_ELF).rmod
|
||||
VBOOT_STUB_DOTO = $(VBOOT_STUB_ELF:.elf=.o)
|
||||
|
||||
# Dependency for the vboot rmodules. Ordering matters.
|
||||
|
@ -24,10 +24,6 @@
|
||||
#include "vboot_context.h"
|
||||
#include "vboot_handoff.h"
|
||||
|
||||
static void vboot_wrapper(struct vboot_context *context);
|
||||
|
||||
DEFINE_RMODULE_HEADER(vboot_wrapper_header, vboot_wrapper, RMODULE_TYPE_VBOOT);
|
||||
|
||||
/* Keep a global context pointer around for the callbacks to use. */
|
||||
static struct vboot_context *gcontext;
|
||||
|
||||
@ -63,12 +59,14 @@ static void parse_component(const struct components *components, int num,
|
||||
fw->size = (uint32_t)components->entries[num].size;
|
||||
}
|
||||
|
||||
static void vboot_wrapper(struct vboot_context *context)
|
||||
static void vboot_wrapper(void *arg)
|
||||
{
|
||||
int i;
|
||||
VbError_t res;
|
||||
const struct components *components;
|
||||
struct vboot_context *context;
|
||||
|
||||
context = arg;
|
||||
gcontext = context;
|
||||
|
||||
VbExDebug("Calling VbInit()\n");
|
||||
@ -266,3 +264,4 @@ VbError_t VbExTpmSendReceive(const uint8_t *request, uint32_t request_length,
|
||||
return VBERROR_SUCCESS;
|
||||
}
|
||||
|
||||
RMODULE_ENTRY(vboot_wrapper);
|
||||
|
Reference in New Issue
Block a user