I managed (again) to get a Pi3B to boot via TFTP/BOOTP running on my router. Therefor, it needs an inserted SD-card with 1 1st MBR partition formatted as FAT32.
In my second trial I used an existing (latest, full-updated) RPiOS SD-card where I just kept the 1st partition in fdisk and on the FAT32 itself delete all files and directories except bootcode.binThen to see something via on serial console cableThat works then nice, same as for Pi4B-2GB (v1.1) with recent/latest EEPROM and Pi3B+ boards.
My 1st attempt, with the goal behind this topic to not use SD-card after sector 32k, failed. I made an 8M partition starting at sector 2048, Partition type 0x0c. Default mkfs.vfat option results in FAT12. FAT16 is refused by mkfs.vfat, FAT32 is created but with warning that the amount of clusters is lower than the minimum.
So 3rd trial was with a 48M partition, that works. But of course 48M parttion for a file of just 52k is huge and is also not below 32k sectors (15M or less parttion size).
The reason for this 32k sector limit is that I want this space reserved for using the SD-card also for various other boards, including ones that require a binary blob in that area and also GPT. Just writing a few MB after saving the first 32k sectors to a file on NAS for later restore saves SD-card writes and also a lot of time rewriting the SD-card for multiple OSses/parttions. I still want fallback to 32-bit Raspbian, some vanilla Debian Testing, all on the same SD-card. I know for ARM UEFI virtual machines the virtual flashROM files are 64M, for old Intel BIOS is it 2M files or so. But those are just files and sparse and compressible. To compare, there various U-boot implementations that fit in 1M, so between end of master GPT and sector 2048, they can read Ext4, some also Btrfs. So you only need a root partition and the U-boot image/blob.
So what error or problem is there for FAT12 or FAT16 ?
Or for small FAT32? I know (U)EFI specifies FAT32, so maybe that is the simple reason to only accept FAT32.
I can't see any logs or maybe I need to set bits in OTP so that there is always debug info from bootROM/maskROM on default serial I/O pins.
Maybe another question; Is there method that just works without MBR, FAT? Like BIOS PCs act upon reading first sector of a disk only?
In my second trial I used an existing (latest, full-updated) RPiOS SD-card where I just kept the 1st partition in fdisk and on the FAT32 itself delete all files and directories except bootcode.bin
Code:
# sha256sum bootcode.binaf603ebd97e7b692c30195563f7b25656eb05d57838cf1a715ebb470d1614ce4 bootcode.bin
Code:
# sed -i -e "s/BOOT_UART=0/BOOT_UART=1/" bootcode.bin
My 1st attempt, with the goal behind this topic to not use SD-card after sector 32k, failed. I made an 8M partition starting at sector 2048, Partition type 0x0c. Default mkfs.vfat option results in FAT12. FAT16 is refused by mkfs.vfat, FAT32 is created but with warning that the amount of clusters is lower than the minimum.
So 3rd trial was with a 48M partition, that works. But of course 48M parttion for a file of just 52k is huge and is also not below 32k sectors (15M or less parttion size).
The reason for this 32k sector limit is that I want this space reserved for using the SD-card also for various other boards, including ones that require a binary blob in that area and also GPT. Just writing a few MB after saving the first 32k sectors to a file on NAS for later restore saves SD-card writes and also a lot of time rewriting the SD-card for multiple OSses/parttions. I still want fallback to 32-bit Raspbian, some vanilla Debian Testing, all on the same SD-card. I know for ARM UEFI virtual machines the virtual flashROM files are 64M, for old Intel BIOS is it 2M files or so. But those are just files and sparse and compressible. To compare, there various U-boot implementations that fit in 1M, so between end of master GPT and sector 2048, they can read Ext4, some also Btrfs. So you only need a root partition and the U-boot image/blob.
So what error or problem is there for FAT12 or FAT16 ?
Or for small FAT32? I know (U)EFI specifies FAT32, so maybe that is the simple reason to only accept FAT32.
I can't see any logs or maybe I need to set bits in OTP so that there is always debug info from bootROM/maskROM on default serial I/O pins.
Maybe another question; Is there method that just works without MBR, FAT? Like BIOS PCs act upon reading first sector of a disk only?
Statistics: Posted by redvli — Sun Sep 15, 2024 7:52 am