@@ -17,6 +17,7 @@
#include <linux/irqdomain.h>
#include <asm/mach/arch.h>
+#include <asm/atags.h>
#include "common.h"
@@ -76,8 +77,17 @@ static const char *const n900_boards_compat[] __initconst = {
NULL,
};
+/* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags,
+ * save them while the data is still there
+ */
+static void __init rx51_reserve(void)
+{
+ save_atags((const struct tag *)(PAGE_OFFSET + 0x100));
+ omap_reserve();
+}
+
DT_MACHINE_START(OMAP3_N900_DT, "Nokia RX-51 board")
- .reserve = omap_reserve,
+ .reserve = rx51_reserve,
.map_io = omap3_map_io,
.init_early = omap3430_init_early,
.init_machine = omap_generic_init,
Nokia N900 (RX51) legacy userspace needs various ATAGS passed by the bootloader (boot reason, device serial, boot mode, various GPIO swithes, etc). Save that data early enough in the boot process, so it can be exported later in /proc/atags Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> --- arch/arm/mach-omap2/board-generic.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)