summaryrefslogtreecommitdiffstats
path: root/arch/x86/lib
Commit message (Collapse)AuthorAgeFilesLines
* x86: setjmp: set base pointer to zero in initjmpAhmad Fatoum2023-10-122-0/+2
| | | | | | | | | | | Initializing the frame points to a known-bad value like zero makes it easier for code unwinding the stack to know when to stop. Thus initialize the stack pointer in initjmp-initialized jump buffers to zero. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231009115051.1931562-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: lib: setjmp: fix stack alignmentAhmad Fatoum2023-10-122-1/+5
| | | | | | | | | | | | | | | | x86 stack is expected to be 16-byte aligned to allow for instructions like movaps that involve xmm operands to directly use the stack. However the 16-byte alignment is what's expected at startup time. All later functions will have the stack misaligned by a pointer size's worth because call pushes the return address to the call stack. Add the missing (mis)alignment. This fixes a segmentation fault observed using initjmp on x86_64. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231009115051.1931562-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arch: add SPDX-License-Identifier to all .c filesAhmad Fatoum2022-01-051-0/+1
| | | | | | | | | Record GPL-2.0-only as license for all files lacking an explicit license statement. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220103120539.1730644-11-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: add SPDX-License-Identifier for Kbuild/KconfigAhmad Fatoum2022-01-051-0/+2
| | | | | | | | | | | | | | | To verify only Kconfig/Makefile is touched: git show --numstat --format=oneline HEAD | grep -v 'Kconfig\|Makefile' will print only arch/powerpc/Kbuild. To verify nothing unexpected is added: git show -U0 | grep '^-[^-]\|^+[^+]' | sort -u Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220103120539.1730644-3-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: drop legacy (PC BIOS) boot in favor of EFIAhmad Fatoum2021-03-257-319/+0
| | | | | | | | | | | | | The 16-bit port has experienced bitrot and failed to compile with more recent linkers for at least a year. Fixing the linker error is insufficient to restore a barebox that can boot to shell. This continued breakage likely means that there are no users interested in updating. As new x86 projects should be using MACH_EFI_GENERIC anyway, retire support for 16-bit legacy boot (MACH_X86_GENERIC). Acked-by: Juergen Borleis <jbe@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: implement setjmp/longjmp/initjmpAhmad Fatoum2021-03-173-0/+123
| | | | | | | | For use with bthreads, implement CONFIG_HAS_ARCH_SJLJ. Code is taken from U-Boot, itself based on the Linux ARCH=um. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arch/x86: Replace license and copyright boilerplate by SPDX identfiersUwe Kleine-König2020-09-214-63/+12
| | | | | | | | Converts the files that licensecheck can determine the license for. Additionally some minor code reformatting is done. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: remove references to CREDITSUwe Kleine-König2020-04-271-3/+0
| | | | | | | | The CREDITS file was removed from barebox in 2015 by commit 6570288f2d97 ("Remove the CREDITS file"). Remove references to it from several files. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* lds: Add and use RO_DATA_SECTION macroSascha Hauer2019-10-141-30/+1
| | | | | | | | | We have many different pointer arrays which we put into linker sections and each time there's one added we have to adjust all linker scripts. This adds a common RO_DATA_SECTION define and uses it for all architectures. This makes it easier to add a new linker array. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* lds: Move start/end address variables into definesSascha Hauer2019-10-141-14/+2
| | | | | | | | | | | For the older section defines we specify the start and end addresses outside the macro which means we have to repeat them in each linker script. Make the start/end addresses part of the define to simplify things. While at it, add a BAREBOX_ prefix to the INITCALLS and EXITCALLS macros for consistency to the other defines. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Sam Ravnborg <sam@ravnborg.org>
* ratp: implement generic command supportAleksander Morgado2018-03-011-0/+7
| | | | | | | | | | | | | | | | | | | The RATP implementation now allows executing generic commands with a binary interface: binary requests are received and binary responses are returned. Each command can define its own RATP request contents (e.g. to specify command-specific options) as well as its own RATP response contents (if any data is to be returned). Each command is associated with a pair of numeric unique request and response IDs, and for easy reference these IDs are maintained in the common ratp_bb header. Modules may override generic implemented commands or include their own new ones (as long as the numeric IDs introduced are unique). Signed-off-by: Aleksander Morgado <aleksander@aleksander.es> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* efi: move x86 efi boot support to x86 archJean-Christophe PLAGNIOL-VILLARD2017-02-272-0/+9
| | | | | | | prepare to drop the efi arch as efi boot up is not arch sepecific Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: move bios bootup code to arch/x86/biosJean-Christophe PLAGNIOL-VILLARD2017-02-244-319/+0
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* exitcall: Add exitcall infrastructureHerve Codina2015-07-131-1/+8
| | | | | | | | exitcall infrastructure is based on initcall infrastructure. It allows to have and use exit call hooks on barebox shutdown. Signed-off-by: Herve Codina <Herve.CODINA@celad.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: move asm-offsets.h rule to ./KbuildMasahiro Yamada2015-01-081-0/+11
| | | | | | | | | | | | | | | Currently, MIPS is the only architecture that needs include/generated/asm-offsets.h, but we have got ./Kbuild file now. It is a good reason to move asm-offsets.h rule from arch/mips/Makefile to ./Kbuild and add dummy asm-offsets.c for the other architectures. asm-offsets.h would be useful for all the architectures. This commit does not implement include/generated/bounds.h, but if necessary, it is easy to implement it. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2014-07-041-1/+1
|\ | | | | | | | | | | | | | | Conflicts: arch/arm/boards/chumby_falconwing/falconwing.c arch/arm/boards/imx233-olinuxino/imx23-olinuxino.c arch/x86/mach-x86.dox scripts/setupmbr/setupmbr.c
| * Fix misspellings of "persistant" -> "persistent" in various placesRobert P. J. Day2014-06-301-1/+1
| | | | | | | | | | | | | | | | Fix misspellings of "persistent", including the renaming of a function to "register_persistant_environment". Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Documentation: remove doxygen documentationSascha Hauer2014-06-262-6/+0
|/ | | | | | | The doxygen documentation is long outdated. Remove it. It will be replaced with sphinx based documentation later. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* scripts: add arch/x86/lib/barebox.lds to gitignoreDu Huanpeng2013-12-101-0/+1
| | | | | Signed-off-by: Du Huanpeng <u74147@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: initialize malloc pool before start_barebox()Sascha Hauer2013-03-141-4/+3
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* barebox-data: add barebox-data sectionsAlexander Aring2013-01-181-0/+2
| | | | | | | | Add barebox-data section in arm branch to get complete barebox regions in sdram regions tree. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Treewide: remove address of the Free Software FoundationSascha Hauer2012-09-177-28/+0
| | | | | | | The FSF address has changed in the past. Instead of updating it each time the address changes, just drop it completely treewide. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86 linker script: Add missing _textSascha Hauer2012-04-051-0/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* introduce barebox_bare_init_size to known the bare_init size and check itJean-Christophe PLAGNIOL-VILLARD2012-01-231-0/+3
| | | | | | | | | | | this allow to check we do not exceed the size of the SRAM as example introduce BAREBOX_MAX_BARE_INIT_SIZE the maximum size of bare_init this will allow your bare_init will fit in SRAM as example ARCH can overwrite it via ARCH_BAREBOX_MAX_BARE_INIT_SIZE Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: Fix linker script for magic varsSascha Hauer2011-12-071-1/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* fix malloc space sizesSascha Hauer2011-12-031-2/+2
| | | | | | end is start + size - 1, not start + size. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* add magicvar commandSascha Hauer2011-11-291-1/+8
| | | | | | | The magicvar command gives an overview about all environment variables with a special meaning. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: fix symbol size calculationLucas De Marchi2011-11-111-4/+7
| | | | | | | | | | | | | | The size is being calculated after changing to another section, which gives error with gcc 4.6: AS arch/x86/lib/traveler.o /tmp/ccP0z8xx.s: Assembler messages: /tmp/ccP0z8xx.s: Error: .size expression for real_to_prot does not evaluate to a constant /tmp/ccP0z8xx.s: Error: .size expression for prot_to_real does not evaluate to a constant make[1]: *** [arch/x86/lib/traveler.o] Error 1 Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* rename include/mem_malloc.h to include/memory.hSascha Hauer2011-09-231-1/+1
| | | | | | | Which is a better name and also better to collect other things. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* x86: Use the generic linker script initializingJuergen Beisert2011-03-101-1/+1
| | | | Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
* x86: use sections.h header file for linker variablesSascha Hauer2011-01-171-1/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* doc: let doxygen find some assembler functionsRobert Schwebel2010-10-222-5/+0
| | | | | | | | | | | | | | Silences these warnings: arch/x86/boot/boot_hdisk.S:29: Warning: documented function `void real_start' was not declared or defined. arch/x86/boot/boot_main.S:28: Warning: documented function `void _start' was not declared or defined. arch/x86/boot/pmjump.S:20: Warning: documented function `void protected_mode_jump' was not declared or defined. arch/x86/lib/memory16.S:32: Warning: documented function `unsigned short bios_get_memsize' was not declared or defined. arch/x86/lib/traveler.S:31: Warning: documented function `void real_to_prot' was not declared or defined. arch/x86/lib/traveler.S:38: Warning: documented function `void prot_to_real' was not declared or defined. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Add a special command to load and start a bzImage on x86Juergen Beisert2010-01-142-0/+76
| | | | | | | | | Other architectures are supporting the uImage format used by barebox's 'bootm' command. x86 does'nt. So, we need a special command to be able to boot the x86 specific bzImage format. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Add a low level disk drive access driverJuergen Beisert2010-01-142-0/+78
| | | | | | | | | This is a low level disk drive communication driver. It uses the real mode BIOS found on most x86 platforms, to read and write sectors. Used by the generic disk driver. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Add some generic functions to make x86 workJuergen Beisert2010-01-146-0/+579
Add some generic functions to make barebox work on x86. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>