hi
I'm using kiyohara-san's orion_nas patch with Buffalo LinkStation Mini.
http://mail-index.netbsd.org/current-users/2009/08/11/msg010311.html
GPIO configuration is different from another NAS boxes. for now, I need
to make new kernel config and hard-code board specific configuration.
I want to add board identify code and share kernel between NAS boxes.
LS Mini has no serial console output (without jumper on board), so
basically I can't access u-boot prompt.
for Linux kernel, u-boot passes machine-type via r1. but for NetBSD
kernel, no useful info is passed. u-boot calls entry point like as a
function,
> loader = (void (*)(bd_t *, image_header_t *, char *, char *))images->ep;
> (*loader) (gd->bd, os_hdr, consdev, cmdline);
(from
http://git.marvell.com/?p=u-boot-kw.git;a=blob;f=common/cmd_bootm.c;h=86c81220d2cd88030c8d6c0e2050b3ddf06d6d49;hb=HEAD)
if I can access u-boot prompt, I can add board identify string to
cmdline or u-boot env. but I can't do it for LS Mini.
on LS Mini, ramdisk image is loaded at 0x00800000 (8MB) and preserved
at entry point of NetBSD. I embed magic number into last byte of image
header of ramdisk image, and I can retrieve it in NetBSD kernel.
/* find ramdisk image header and save last byte as board_type */
mov r0, #8388608
ldr r1, [r0, #0]
ldr r2, Lmagic
cmp r1, r2
ldreqb r1, [r0, #63]
adreq r2, board_type
streq r1, [r2, #0]
(ramdisk load address should be extracted from cmdline)
image header is 64 bytes and last member of image header is 32 bytes for
NUL terminated string. magic number is embeded after NUL character.
in this way, shared kernel image can be used with board dependant
ramdisk image.
I think this is dirty hack, but I can't find another solution. please
give me a comment.
Regards,
--
FUKAUMI Naoki
Attachment:
marvell_start.S
Description: Binary data