mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 14:40:41 +00:00
ac31a7b81c
Implement arch_phys_memset so that it can set memory at physical addresses above 4GB using PAE paging. Because there are only 5 page tables in PAE mode, 1 PDPT and 4 PDTs, those tables are statically allocated in the BSS. The tables must be 4K page aligned and are declared that way, and because U-Boot starts as 4K aligned and the relocation code relocates it to a 4K aligned address, the tables work as intended. While paging is turned on, all 4GB are identity mapped except for one 2MB page which is used as the window into high memory. This way, U-Boot will continue to work as expected when running code that expects to access memory freely, but the code can still get at high memory through its window. The window is put at 2MB so that it's 2MB page aligned, low in memory to be out of the way of things U-Boot is likely to care about, and above the lowest 1MB where lots of random things live. Signed-off-by: Gabe Black <gabeblack@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
74 lines
2.1 KiB
Makefile
74 lines
2.1 KiB
Makefile
#
|
|
# (C) Copyright 2002-2006
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
#
|
|
# See file CREDITS for list of people who contributed to this
|
|
# project.
|
|
#
|
|
# 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; 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
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
# MA 02111-1307 USA
|
|
#
|
|
|
|
include $(TOPDIR)/config.mk
|
|
|
|
LIB = $(obj)lib$(ARCH).o
|
|
|
|
ifeq ($(CONFIG_X86_NO_REAL_MODE),)
|
|
SOBJS-$(CONFIG_SYS_PC_BIOS) += bios.o
|
|
SOBJS-$(CONFIG_SYS_PCI_BIOS) += bios_pci.o
|
|
COBJS-y += realmode.o
|
|
SOBJS-y += realmode_switch.o
|
|
|
|
COBJS-$(CONFIG_SYS_PC_BIOS) += bios_setup.o
|
|
COBJS-$(CONFIG_VIDEO) += video_bios.o
|
|
endif
|
|
|
|
COBJS-y += board.o
|
|
COBJS-y += bootm.o
|
|
COBJS-y += cmd_boot.o
|
|
COBJS-y += gcc.o
|
|
COBJS-y += init_helpers.o
|
|
COBJS-y += init_wrappers.o
|
|
COBJS-y += interrupts.o
|
|
COBJS-$(CONFIG_SYS_PCAT_INTERRUPTS) += pcat_interrupts.o
|
|
COBJS-$(CONFIG_SYS_GENERIC_TIMER) += pcat_timer.o
|
|
COBJS-$(CONFIG_PCI) += pci.o
|
|
COBJS-$(CONFIG_PCI) += pci_type1.o
|
|
COBJS-y += relocate.o
|
|
COBJS-y += physmem.o
|
|
COBJS-y += string.o
|
|
COBJS-$(CONFIG_SYS_X86_ISR_TIMER) += timer.o
|
|
COBJS-$(CONFIG_VIDEO) += video.o
|
|
COBJS-$(CONFIG_CMD_ZBOOT) += zimage.o
|
|
|
|
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
|
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
|
|
|
|
$(LIB): $(obj).depend $(OBJS)
|
|
$(call cmd_link_o_target, $(OBJS))
|
|
|
|
$(PREFIXED_LIBGCC): $(NORMAL_LIBGCC)
|
|
$(OBJCOPY) $< $@ --prefix-symbols=__normal_
|
|
|
|
$(LIB): $(PREFIXED_LIBGCC)
|
|
|
|
#########################################################################
|
|
|
|
# defines $(obj).depend target
|
|
include $(SRCTREE)/rules.mk
|
|
|
|
sinclude $(obj).depend
|
|
|
|
#########################################################################
|