[U-Boot-Users] U-boot with environment in flash now won't use serial console under Linux

Hi all,
I've recently successfully changed U-Boot such that it's environment is in flash (on the PPChameleonEVB board). However, now when I boot the kernel I get no serial console. The serial console works fine under U-Boot up until the time it transfers control to Linux, at which point I get nothing.
However, if I switch back to the original U-Boot, I *do* get a serial console (this is with exactly the same kernel). This (to me) tends to point to some problem with the way I've changed U-Boot.
I've modified the 'evb405ep_early_serial_map' function in arch/ppc/platforms/PPChameleonEVB.c so that it prints out the parameters passed in the bd_t structure, and these are identical in both cases (at least, for the members of the structure that this function uses).
Can anyone offer any advice as to why I'm no longer getting a serial console? Linux is booting up fine (I can telnet into it), but I'm just not getting a console.
The changes I've made in include/configs/PPChameleonEVB.h are as follows:
CFG_MONITOR_BASE from 0xFFFC0000 to 0xFFFD0000 CFG_MONITOR_LEN and CFG_MALLOC_LEN from 256k to 192k
Changed the definitions for the environment from
#define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */ #define CFG_ENV_OFFSET 0x100 /* environment starts at the beginning #define CFG_ENV_SIZE 0x700 /* 2048 bytes may be used for env vars* /* total size of a CAT24WC16 is 2048 bytes * to
#define CFG_ENV_IS_IN_FLASH 1 #define CFG_ENV_ADDR 0xFFFC0000 #define CFG_ENV_SIZE 0x10000
Thanks for any advice you can offer.
Andy

In message 001501c4188e$6bda5570$153335bf@cabletime.com you wrote:
I've recently successfully changed U-Boot such that it's environment is in flash (on the PPChameleonEVB board). However, now when I boot the kernel I get no serial console. The serial console works fine under U-Boot up until the time it transfers control to Linux, at which point I get nothing.
However, if I switch back to the original U-Boot, I *do* get a serial console (this is with exactly the same kernel). This (to me) tends to point to some problem with the way I've changed U-Boot.
Probably. I recommend to make one change at a time.
I've modified the 'evb405ep_early_serial_map' function in
I recommend to ONLY make the modification to the environment storage, and nothing else. Don't modify the serial drivers.
Also, you might want to check the boot arguments you pass to the kernel. Are they really the same in both cases? Maybe your new version fails to pass a console= argument?
Best regards,
Wolfgang Denk

Hi,
I've modified the 'evb405ep_early_serial_map' function in
I recommend to ONLY make the modification to the environment storage, and nothing else. Don't modify the serial drivers.
The only modification to the serial driver is to include printk statements to see what parameters it's getting. This is in the linux kernel, not u-boot. In both instances, I have been using an identical kernel image, the only difference is between the two u-boot images. The kernel image has been working fine using u-boot where the environment is stored in EEPROM.
Also, you might want to check the boot arguments you pass to the kernel. Are they really the same in both cases? Maybe your new version fails to pass a console= argument?
I'll verify that the arguments are the same in both cases. However, this is the command line seen by the non-working kernel:
Kernel command line: root=/dev/nfs rw nfsroot=191.53.51.22:/home/andyh/target ip=191.53.51.200:191.53.51.22::255.255.0.0:PPChameleonEVB:eth0:off panic=1 console=ttyS0:115200
This looks fine to me...
However, setserial returns the following:
setserial -a /dev/console /dev/console, Line 0, UART: 16550A, Port: 0x0000, IRQ: 0 Baud_base: 694444, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test
The baud_base looks odd to me. However, this is the value calculated as serial_baud_405ep in the kernel's evb405ep_early_serial_map function (which is the same in both instances), so is probably correct.
Thanks.
Andy
participants (2)
-
Andy Hawkins
-
Wolfgang Denk