Any can help me to find the boot sequence of powerPC 83xx of linux kernel after the bootloader transfer control to kernel..
Please please help me....
thanks, Nabendu
Any can help me to find the boot sequence of powerPC 83xx of linux kernel after the bootloader transfer control to kernel..
Please please help me....
thanks, Nabendu
Look in this area: arch/powerpc/platforms/83xx
-- Michael N. Moran (h) 770 516 7918 5009 Old Field Ct. (c) 678 521 5460
yes I had gone through that directory, but could not find entry point from which bootloder ( u-boot) gives transfer to linux Image.
My board is freescale 834x MDS.
Regards, Nabendu
yes I had gone through that directory, but could not find entry point like head.s in x86 from which bootloder ( u-boot) gives transfer to linux Image.
My board is freescale 834x MDS.
Regards, Nabendu
The details may vary, but a Google for "Linux PPC Boot Sequence" gave me this link for the PPC 8xx, which will likely be similar depending on your needs.
-- Michael N. Moran (h) 770 516 7918 5009 Old Field Ct. (c) 678 521 5460
I hadn't found any head.S assembly file. [:( ]in boot dir of arch/ powerpc/boot) or like ps3-head.s for powerpc 83xx.
also it is not like ppc/boot/ dir & file structure.
Regards, Nabendu
Searching arch/arm I found:
arch/arm/kernel/head.S arch/arm/boot/compressed/head.S
The upper-case '.S' extension on assembly source files is used to identify assembly source files that use the C processor before being assembled with 'as'.
-- Michael N. Moran (h) 770 516 7918 5009 Old Field Ct. (c) 678 521 5460
mkimage is run as part of the kernel build process, and creates the imag header that uboot (or whatever boot program you're using) uses to locat the linux entry point. mkimage compresses the kernel and builds the imag header record. e.g. the load address is 0x0 and the entry point for th kernel is 0x100000:
mkimage ?n "Kernel 2.4.18" ?A arm ?O linux ?T kernel ?C gzi ?a 0 ?e 100000 -d Image.gz:initrd.gz multi-2.4.18.img
the image record header format is: /* * Legacy format image header, * all data in network byte order (aka natural aka bigendian). */ typedef struct image_header { uint32_t ih_magic; /* Image Header Magic Number */ uint32_t ih_hcrc; /* Image Header CRC Checksum */ uint32_t ih_time; /* Image Creation Timestamp */ uint32_t ih_size; /* Image Data Size */ uint32_t ih_load; /* Data Load Address */ uint32_t ih_ep; /* Entry Point Address */ uint32_t ih_dcrc; /* Image Data CRC Checksum */ uint8_t ih_os; /* Operating System */ uint8_t ih_arch; /* CPU architecture */ uint8_t ih_type; /* Image Type */ uint8_t ih_comp; /* Compression Type */ uint8_t ih_name[IH_NMLEN]; /* Image Name */ } image_header_t;
So the key is to find where in your build environment the section tha contains the Linux entry code is located to the ih_ep location. Search fo "__attribute__((section" in your kernel tree, and that should lead you t the entry point. You can also check your linker ld script to see whic section is located at the ih_ep, and then work back from there to find th named section in the source.
Jeff Ramsey
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.