X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Flpc%2Fao_boot_chain.c;h=0cb92a5299565d90026cdde42688a921af192e6d;hb=b140da92536d7c48ba37868f1c2afce7bb86dfdb;hp=a08d1f2c647b823fec0c151a952d0a6644e8832d;hpb=4ff54bb96f6c00c0c2c7dd32f81403bac331621a;p=fw%2Faltos diff --git a/src/lpc/ao_boot_chain.c b/src/lpc/ao_boot_chain.c index a08d1f2c..0cb92a52 100644 --- a/src/lpc/ao_boot_chain.c +++ b/src/lpc/ao_boot_chain.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -42,15 +43,15 @@ struct ao_boot { uint32_t check; }; -static struct ao_boot __attribute__ ((section(".boot"))) ao_boot; - +struct ao_boot ao_boot __attribute__((section(".preserve.2"))); + int ao_boot_check_chain(void) { if (ao_boot.signal == AO_BOOT_SIGNAL && ao_boot.check == AO_BOOT_CHECK) { ao_boot.signal = 0; ao_boot.check = 0; - if (ao_boot.base == 0) + if (ao_boot.base == AO_BOOT_FORCE_LOADER) return 0; ao_boot_chain(ao_boot.base); }