summaryrefslogtreecommitdiff
path: root/sys/src/boot
AgeCommit message (Collapse)Author
2020-11-21efi: prefer plan9.ini from ESP we loaded frommischief
currently the EFI loader's behavior is to search all disks in a firmware-defined order. we search the list returned by the firmware in reverse order in the hopes of searching the first 9FAT instead of the ESP, but this results in unintuitive behavior when there are multiple FAT partitions (possibly in multiple disks), such as loading a plan9.ini and kernel from a different disk than the one you executed the EFI loader from. to resolve this, we change the EFI loader to instead prefer read plan9.ini and the kernel from the same disk as the EFI loader was read from, and then fall back to the old behavior, since the old behavior is relied on by current installations.
2020-04-089bootpxe: simplifycinap_lenrek
2020-04-089bootpxe: continues the war against random DHCPv6 DUIDscinap_lenrek
Some UEFI implementations use random UUID based DUID instead of ethernet address, but use ethernet derived link-local addresses. So extract the MAC from our IPv6 address.
2019-08-18add missing device tree file for raspberry pi 4cinap_lenrek
2019-08-18add raspberry pi 4 kernel and bootloader to pi3.img targetcinap_lenrek
2018-10-22add /sys/src/boot/bcm/mkfile to download raspberry pi bootcode firmwarecinap_lenrek
2018-10-069boot: get rid of 64 byte line length limitcinap_lenrek
2018-09-169boot: don't let user erase the prompt (thanks mischief)cinap_lenrek
2018-05-279boot: detect SYSLINUX "memdisk" and pass to kernel via ramdisk0= parametercinap_lenrek
this makes virtual "memdisk" from SYSLINUX accessible to the kernel, allowing the iso to be loaded via TFTP and started without any ethernet or disk drivers available.
2018-05-159boot: DHCPv6 support for eficinap_lenrek
2018-02-10aijuboard bootloader: fix 10BASE-T / 100BASE-TX supportaiju
2017-09-299boot: limit read size to 4K for efi simple file system protocolcinap_lenrek
copying files from the uefi shell works, reading plan9.ini works, loading the kernel by calling Read to read in the DATA section of the kernel *FAILS*. my guess is that uefi filesystem driver or nvme driver tries to allocate a temporary buffer and hasnt got the space. limiting the read size fixes it.
2017-09-10rename pcf kernel to pc, remove pcf, pccpuf, pccpu64 kernels, update ↵cinap_lenrek
documentation there isnt much of a point in keep maintaining separate kernel configurations for terminal and cpu kernels as the role can be switched with service=cpu boot parameter. to make stuff cosistent, we will just have one "pc" kernel and one "pc64" kernel configuration now.
2016-05-22efi: ensure 8 byte alignment of buffer, as ReadBlocks() method will fail ↵cinap_lenrek
otherwise
2016-05-22efi: allow access to iso filesystem on non-cdrom media (iso/hybrid)cinap_lenrek
2016-05-199boot: add iso hybrid loader 9boothybcinap_lenrek
2016-05-04retire the dec alpha portcinap_lenrek
2015-06-059boot: look for plan9.ini in all filesystems accessible to efi to find plan9 ↵cinap_lenrek
partition try the handle buffer in reverse order looking for plan9.ini to find plan9 partition (9fat). when that fails, we'll default to the first handle which should be the esp.
2015-05-13boot/zynq: use ./boothead.$cputype to invoke helpercinap_lenrek
2015-05-13boot/zynq: add jtagload utilitycinap_lenrek
2015-05-13boot/zynq: implement sdmmc boot (fat)cinap_lenrek
2015-01-25pc, efi loaders: erase characters when backspace is pressedmischief
2014-12-24added zynq kernelaiju
2014-10-31efi: generate /386/efiboot.fat for generating efi bootable cd images (see -E ↵cinap_lenrek
option of mk9660)
2014-10-31efi: iso filesystem support for cdrom bootingcinap_lenrek
instead of including kernel and config in the efi fat image, we can just include the loaders and read the plan9.ini and kernel from iso filesystem just like the bios loaders.
2014-10-31efi: add test targets for iso and fat (for documentation only)cinap_lenrek
2014-10-24efi: change eficonfig ordering so memconf() is first, dont fallback to fs ↵cinap_lenrek
when /cfg/pxe/ file isnt there having the memconf() (*e820=) last clutters the screen. do it first, so we can read *acpi= and *bootscreen= prints. we want to continue using tftp even when the /cfg/pxe/$ether file is not found. only when we detect no pxe/dhcp session, then we switch to local filesystem (non-network boot).
2014-10-23efi: add initial pxe support (v4 only)cinap_lenrek
2014-10-19efi: use LocateHandle() and HandleProtocol() to check for multiple gop ↵cinap_lenrek
protocols to find a usable one the gop returned by LocateProtocol() is not usable on thinkpad x230, so iterate over all handles to find a usable one.
2014-10-19efi: fix compiler warnings, remove indicator prints in readn()cinap_lenrek
2014-10-18efi: simplify bootscreen codecinap_lenrek
2014-10-18efi: convert pixel format to bootscreen color channelcinap_lenrek
2014-10-18efi: make clean target virtualcinap_lenrek
2014-10-18efi: add experimental efi bootloadercinap_lenrek
this is basically a port of 9boot to EFI. theres support for IA32 (386) and X64 (amd64). has been tested only under qemu with OVMF so far.
2013-09-239bootfat: only check for fat at block 0 on floppy drives (thanks aap)cinap_lenrek
smart boot manager has a "FAT" signature in its mbr causing 9bootfat to "detect" it as a fat filesystem and then fails to find plan9.ini. there shouldnt be a fat filesystem on harddrives at block 0, only on floppy drives. but some bioses use floppy drive numbers for usb harddrives so still check for a partition table. thanks aap for debugging this.
2013-09-019bootfat: always try plan9 partition even when not marked active, fix bugcinap_lenrek
always look for 9fat in plan9 partition even tho the partition is *not* maked active. marking partitions active is not recommended anymore with grub so this makes life easier for some people. multiple plan9 partitions on a single drive is not supported. have to copy partition table as buf gets trashed when reading first block of fat partition. it worked only when the first fat partition found (the one marked active) was the right one, but conffat() can fail.
2013-05-06pbs: allow 9bootfat start cluster beyond 0xFFFFcinap_lenrek
pbs failed to load (silently loading garbage) 9BOOTFAT from start cluster beyond FFFF because we ignored the low word from the directory entry. now taking the high 16 bit of the directory's start cluster into account.
2013-02-189boot: fix 9bootisocinap_lenrek
rearrange sub.c for putc(), readn(), memcmp(), memmove(), strchr() and strlen() and uart to fit into the first 2K of the image.
2013-02-189boot: serial console supportcinap_lenrek
2013-02-179boot: make print handle \n -> \r\n conversion, stylecinap_lenrek
2013-02-179boot: preserve configuration on boot error, add show commandcinap_lenrek
2012-12-039boot: truncate long lines instead of producing partial lines from ↵cinap_lenrek
console/plan9.ini
2012-09-20tftp: prevent it from hanging if ack packets get lostcinap_lenrek
send ACK reply for duplicate data packets in case our ack response got lost. make sure packets are in sequence and ignore out of oder packets (except the ones we'v already acked).
2012-08-219bootpxe: try /cfg/pxe/default if /cfg/pxe/$ether fails before breaking to ↵cinap_lenrek
the prompt.
2012-06-239boot: change to new *e820= format, support for 64bit kernelscinap_lenrek
2012-05-08disk/format, 9boot: fix alignment issuescinap_lenrek
2012-05-089bootfat: fat12 supportcinap_lenrek
2012-01-209boot: always check if a20 is already enabled, use different keyboard code, ↵cinap_lenrek
retry on failure.
2011-12-269boot: replace strrchr() call with a loop and strchr() for ignoring bang ↵cinap_lenrek
path prefixes
2011-11-119boot: fix more e820cinap_lenrek