rpi: Restore ctors and bss functions
* Fixes pre-mmu new and malloc's * Use nothrow for new
This commit is contained in:
@@ -80,7 +80,9 @@ serial_cleanup(void)
|
|||||||
extern "C" void
|
extern "C" void
|
||||||
serial_init(void)
|
serial_init(void)
|
||||||
{
|
{
|
||||||
gUART = new UartPL011(uart_base_debug());
|
gUART = new(nothrow) UartPL011(uart_base_debug());
|
||||||
|
if (gUART == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
gUART->InitEarly();
|
gUART->InitEarly();
|
||||||
gUART->Init();
|
gUART->Init();
|
||||||
|
|||||||
@@ -37,28 +37,18 @@ void _start(void);
|
|||||||
static void
|
static void
|
||||||
clear_bss(void)
|
clear_bss(void)
|
||||||
{
|
{
|
||||||
/* TODO: fix boot_loader_routerboard_mipsel.ld
|
|
||||||
* so this code works, or find a workaround.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
memset(&__bss_start, 0, &_end - &__bss_start);
|
memset(&__bss_start, 0, &_end - &__bss_start);
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
call_ctors(void)
|
call_ctors(void)
|
||||||
{
|
{
|
||||||
/* TODO: fix boot_loader_routerboard_mipsel.ld
|
|
||||||
* so this code works, or find a workaround.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
void (**f)(void);
|
void (**f)(void);
|
||||||
|
|
||||||
for (f = &__ctor_list; f < &__ctor_end; f++) {
|
for (f = &__ctor_list; f < &__ctor_end; f++) {
|
||||||
(**f)();
|
(**f)();
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -98,7 +88,6 @@ platform_exit(void)
|
|||||||
void
|
void
|
||||||
pi_start(void)
|
pi_start(void)
|
||||||
{
|
{
|
||||||
#warning IMPLEMENT _start
|
|
||||||
stage2_args args;
|
stage2_args args;
|
||||||
|
|
||||||
clear_bss();
|
clear_bss();
|
||||||
|
|||||||
Reference in New Issue
Block a user