I want to do one experiment with my Embedded system:
i want to put GRUB and Kernel with initramfs file system in to the NOR flash. I want to represent this NOR flash as a bootable hard disk to the UEFI. I have written on BLOCK_IO_PROTOCOL driver in the UEFI that will represent my NOR flash as Hard disk.
With GRUB one i have done this steps:
1) First I created one 6MB partition on USB disk with FAT file system (/dev/sda1) and I copied all the grub files and kernel image in to the partition. 2) I installed the grub on /dev/sda.( grub-install /dev/sda) and able to boot with this USB disk.
3)) Next step, i taken this USB disk and created a image from it ( dd if=/dev/sda of=file.img bs=1MB count=8). This image i am programming in to my NOR flash and i am able to boot my system From NOR flash.
Question:
1) When i installed my grub on disk I given /dev/sda. we are writing MBR on LBA0. My partition is starting at LBA16. so in my NOR flash from LBA1 to LBA15 are unuse. How to avoid this problem? I dont want to waste any of my NOR flash. But i have to represent this NOR flash as Bootable disk. Please give me some pointers to solve this issue.
2) Is there a way to put the parttion table and created Partition in contiguous LBAs? (Beacuse UEFI will not execute MBR code.._ )